スクロール画面を作成したいので、ScrollView
を埋め込みたいと思いました。しかし、ビューを圧縮されたサイズに縮小するだけでは達成できません。 ScrollView
を垂直方向にスクロールして、コンテンツがscrollViewの幅と一致するようにしたいとします。だから私はそのようなプレビューを使用します:
struct ScrollSubview_Previews : PreviewProvider {
static var previews: some View {
func textfield() -> some View {
TextField(.constant("Text")).background(Color.red)
}
return Group {
textfield()
ScrollView {
textfield()
}
}
}
}
しかし、それはこのような結果で終わります:
これはベータ2にも存在する既知の問題です-AppleのXcode 11リリースノートをここでチェックしてください⬇️ https://developer.Apple.com/documentation/xcode_release_notes/xcode_11_beta_2_release_notes 。
Apple=自体で説明されている回避策は、要素内のScrollViewに固定フレームを設定することです。その場合、画面の幅を修正するためにGeometryReaderを使用することをお勧めします。高さは自動的にコンテンツに適合します。
たとえば、ScrollViewのコンテンツを画面の幅に合わせる必要がある場合は、次のようにします。
return GeometryReader { geometry in
Group {
self.textfield()
ScrollView {
self.textfield()
.frame(width: geometry.size.width)
}
}
}
ここにトリックがあります:HStack
を1つだけ持つSpacer
を紹介します:
return Group {
HStack {
Spacer()
}
textfield()
ScrollView {
textfield()
}
}