リストの y オフセットを変更したところ、クリップされてしまいました。
スクロールすると、タイトルの下のテキストとビューの上部にあるボタンが部分的に見えるようにしようとしています。つまり、画面の上部を少し透明にしたいのです。
上部の情報と重ならないように、リストにオフセットを追加しました。
上の画像は、私のコードに VStack を表示したものです。VStackが邪魔かなと思ってコメントアウトした結果が以下の画像です。
これが私のコードです:
var body: some View {
ZStack {
VStack {
HStack {
Button(action: {self.showAccountView.toggle()}) {
Image(systemName: "person.fill")
.renderingMode(.original)
.font(.system(size: 20, weight: .bold))
.frame(width: 44, height: 44)
.modifier(NavButtons())
}
.sheet(isPresented: $showAccountView) {
AccountView()
}
Spacer()
Button(action: { self.showHelpCenter.toggle()}) {
Image(systemName: "questionmark")
.renderingMode(.original)
.font(.system(size: 20, weight: .bold))
.modifier(NavButtons())
}
.sheet(isPresented: $showHelpCenter) {
HelpCenter()
}
}
.frame(maxWidth: .infinity)
.padding(.horizontal)
Spacer()
}
List {
ForEach (store.allLogs) { thing in
VStack (alignment: .leading) {
HStack {
Text("\(thing.date) , \(thing.time)")
}
Text(thing.notes)
.multilineTextAlignment(.leading)
}
}
}.offset(y: 50)
}
}
編集:
これは考えられる解決策の 1 つです。
struct MyList: UIViewRepresentable {
func makeUIView(context: Context) -> UITableView {
let view = UITableView()
view.clipsToBounds = false
return view
}
func updateUIView(_ uiView: UITableView, context: Context) {
}
}
次に、makeUIView と updateUIView を使用してセルを更新します。これは面倒で、その時点では実際には SwiftUI を使用していません。
2 番目の編集
scrollView とフォームでこの問題が見つかりました
。黒は背景です。3つすべてのコードは次のとおりです。
Group {
List ((0 ... 10), id: \.self) {
Text("Row \($0)")
}
.offset(y: 200)
.border(Color.blue, width: 3)
.background(Color.black)
ScrollView {
Text("Text")
}
.foregroundColor(.white)
.offset(y: 200)
.border(Color.blue, width: 3)
.background(Color.black)
Form {
Text("Text")
}
.offset(y: 200)
.border(Color.blue, width: 3)
.background(Color.black)
}
List/Form/ScrollView と同じ高さのフレームの名前は次のとおりです。
リスト:
PlainList.BodyContent
ListCore.Container
ListRepresentable
View Host
TableWrapper
UpdateCoalescingTableView
フォーム:
GroupList.BodyContent
ListCore.Container
ListRepresentable
View Host
TableWrapper
UpdateCoalescingTableView
ScrollView:
ScrollViewBody
SystemScrollView
ビュー ホスト
HostingScrollView
私の質問は、「どうすれば...」から「なぜこれが起こっているのですか?」に変わったと思います。私は正確に何が起こっているのかについてかなり混乱しています。