44

以下のようにシンプルListに作成しましたが、その下に余分なセパレーターがあります。

List {
  Text("Item 1")
  Text("Item 2")
  Text("Item 3")
}

結果:

ここに画像の説明を入力

List を a 内に埋め込み、以下のコードのようVStackに追加しようとしましたが、正しく機能しません。Spacer()空のセルの約半分が削除されます。

VStack{
  List {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
  Spacer()
}

これらの余分なセパレーターをSwiftUIで削除するにはどうすればよいですか?

4

10 に答える 10

21

これは完全な解決策ではありませんが、ForEach 呼び出しを使用して各セルが作成され、Divider() を使用して仕切りが作成される ScrollView を使用できます。

編集: これについて WWDC で Apple のエンジニアと話しました。彼らは、仕切りの削除/変更に関して多くのフィードバックを聞いています. ただし、今のところ、上記の回答は彼らの推奨事項です。

于 2019-06-07T16:40:36.983 に答える
9

白い四角形をフッターとして追加し、EdgeInsets を 0 にするとうまくいきました。

struct Footer: View {
    var body: some View {
        Rectangle()
            .foregroundColor(.white)
            .listRowInsets(EdgeInsets())
    }
}

struct Timeline : View {
    var body: some View {
        List {
            Section(footer: Footer()) {
                Text("Item 1")
                Text("Item 2")
                Text("Item 3")
            }
        }
    }
}

唯一の問題は、ヘッダーも追加され、それを取り除く方法がわからないことです。

ここに画像の説明を入力

于 2019-06-13T08:26:19.580 に答える
3

それを行う2つの方法:

struct ContentView: View {
    
    var body: some View {
        
        List {
                Text("One")
                Text("Two")
                Text("Three")
        }.listStyle(GroupedListStyle())
    }
}
struct ContentView: View {
    
    var body: some View {
        
        List {
            Section(header: Text("Header"), footer: Text("Footer")) {
                Text("One")
                Text("Two")
                Text("Three")
            }
        }
    }
}

グループ化されたリスト スタイルをお勧めします。

于 2019-06-12T05:54:54.353 に答える
2

これが1つの方法です。

List {
         Section(footer: Text(""))) {
                Text("One")
                Text("Two")
                Text("Three")
            }
     }

フッターのテキスト ビューの代わりに、独自のテキスト ビューを作成できます。注 - EmptyView() を試しましたが、実際には冗長な区切り記号は削除されません。

于 2019-06-07T19:48:41.493 に答える