iOS
StackViewの子を持つUIScrollView
サーチ…
スクロールビューの例の中の複雑なStackView
ここでは、ネストされたStackViewを使用してできることの例を示し、ユーザーに複雑なユーザーインターフェイス要素またはアライメントを使用して連続的なスクロールエクスペリエンスの印象を与えます。
あいまいなレイアウトの防止
Scrollviews内のStackViewに関するよくある質問は、インタフェースビルダーのあいまいな/ heighアラートが原因です。 この答えが説明されているので、次のことが必要です。
- UIScrollViewにUIView(contentScrollView)を追加します。
- このcontentScrollViewでは、上端、下端、左端、および右端のマージンを0に設定します。
- 中心を水平および垂直に揃えます。
ネストされた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