カスタム行のリストを表示するこのコードがあります。
struct ContentView : View {
var body: some View {
VStack(alignment: .leading) {
List(1...10) {_ in
CustomRow()
}
}
}
}
ただし、各行の行を削除したいと思います。 List
を使用せず、代わりにForEach
内でScrollView
を使用しようとしましたが、パディングやマージンを含むすべてのスタイルが完全に削除されました。行だけを削除したいだけです。
助けてください、ありがとう。
ScrollViewを使用しますか?
リストを表すいくつかの状態
@State var menuItems: [String] = ["One", "Two", "Three"]
A SwiftUI
内のForEach
ScrollView
ループ
ScrollView {
ForEach(self.menuItems, id: \.self) { item in
Text(item)
}
}
@Mojtaba Hosseiniの回答に加えて、これは、リストの下の余分なセパレーターを非表示にする方法です最後のセパレーターを含む:
init() {
UITableView.appearance().tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 1))
}
.listRowInsets(EdgeInsets(top:5、先頭:5、下:5、末尾:5))を挿入して行にパディングを追加すると、VSTack内でスタイルを設定できます。
struct ContentView : View {
var body: some View {
VStack(alignment: .leading) {
List(1...10) {_ in
CustomRow()
}
}
.listRowInsets(EdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5))
}
}
2番目のアプローチは次のとおりです(Bindingを渡す必要がある場合は、enableNext渡された値を無視しない場合は、以下を参照してください)。
struct ContentView : View {
@State var enableNextState: Bool = false
var body: some View {
VStack(alignment: .leading) {
List(1...10) {_ in
CustomRow(enableNext: enableNextState )
}
}
}
}
struct CustomRow: View {
@Binding var enableNext: Bool
init(enableNext: Binding<Bool>) {
self._enableNext = enableNext
UITableView.appearance().separatorColor = .clear
}
var body: some View {
Text("ROW DATA")
}
}