サーチ…


スクロールビューの例の中の複雑なStackView

ここでは、ネストされたStackViewを使用してできることの例を示し、ユーザーに複雑なユーザーインターフェイス要素またはアライメントを使用して連続的なスクロールエクスペリエンスの印象を与えます。

スクロールビューの例の中の複雑なStackView

あいまいなレイアウトの防止

Scrollviews内のStackViewに関するよくある質問は、インタフェースビルダーのあいまいな/ heighアラートが原因です。 この答えが説明されているので、次のことが必要です。

  1. UIScrollViewにUIView(contentScrollView)を追加します。
  2. このcontentScrollViewでは、上端、下端、左端、および右端のマージンを0に設定します。
  3. 中心を水平および垂直に揃えます。

ネストされたStackView内のコンテンツへのスクロール

スクロールに関する大きな問題は、 ScrollViewの内部にあるStackView内のテキストフィールドを表示するのに必要なオフセットを決定することです

あなたTextfield.frame.minYの位置を取得しようとすると、minYフレームは要素とStackViewの上端の間の距離だけを考慮しているため、 0にすることができます 。したがって、他のすべての親スタックビュー/ビュー考慮する必要があります。

このための良い回避策は次のとおりです。

1 - ScrollViewエクステンションを実装する

extension UIScrollView {

    func scrollToShowView(view: UIView){
        var offset = view.frame.minY
        var superview = view.superview
        while((superview  != nil)){
            offset += (superview?.frame.minY)!
            superview = superview?.superview
        }
        
        offset -= 100 //optional margin added on offset
        
        self.contentOffset = CGPoint.init(x: 0, y: offset)
    }

}

これは、すべての親ビューとサムを考慮して、スクロールビューに必要なビューを表示するために必要なオフセット(たとえば、ユーザーのキーボードの後ろにはいられないテキストフィールド)

使用例:

func textViewDidBeginEditing(_ textView: UITextView) {
    self.contentScrollView.scrollToShowView(view: textView)
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow