私は入れ子になった階層リストを作成しようとしているので、iOSリマインダーアプリのようなサブタスクを持つことができる各タスクの場合:
最初の試みはリストセル内に別のリストを埋め込むことでした。
import SwiftUI
struct SwiftUIView: View {
var body: some View {
List {
List {
Text("Hello, World!")
}
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
_
しかし、うまくいきませんでした...
誰もが助けることができますか?
乾杯
なぜリストのリストになるべきだと思いますか...そのような視覚的表現は1つのリストしか使用して生成でき、ネイティブの外観と感触があります。
これは単なるデモ(w/o UIチューニングと表示/非隠しセクション、それがトピック不足)ですが、そのアイデアは明確になるべきです
import SwiftUI
struct ItemRow: View {
let category: Bool
let text: String
init(_ text: String, isCategory: Bool = false) {
self.category = isCategory
self.text = text
}
var body: some View {
HStack {
Circle().stroke() // this can be custom control
.frame(width: 20, height: 20)
.onTapGesture {
// handle tap here
}
if category {
Text(self.text).bold()
} else {
Text(self.text)
}
}
}
}
struct TestNestedLists: View {
var body: some View {
List { // next pattern easily wrapped with ForEach
ItemRow("Category", isCategory: true) // this can be section's header
Section {
ItemRow("Item 1")
ItemRow("Item 2")
ItemRow("Item 3")
}.padding(.leading, 20)
}
}
}
struct TestNestedLists_Previews: PreviewProvider {
static var previews: some View {
TestNestedLists()
}
}
_
それは難しくないが、あなたは手動でいくつかのフレームを追加する必要があります。
struct SwiftUIViewList: View {
var body: some View {
List {
Text("Hello, World!")
Text("Hello, World!")
}
}
}
struct SwiftUIView: View {
var body: some View {
List {
Text("item1")
SwiftUIViewList().frame(height: 100)
Text("item3")
}
}
}
_