使用ForEach

时间:2019-06-13 23:54:18

标签: ios swift swiftui

所以我正在尝试SwiftUI,不幸的是它仍然存在一些问题,但是我不知道它是站在我这边还是只是在越野车。我正在尝试在显示图像的ForEach旁边使用SegmentedControl,但是SegmentedControl的标签不见了。

这是我的ContentView:

struct ContentView : View {
    @State var filter = 0

    var body: some View {
        NavigationView {
            SegmentedControl(selection: $filter) {
                Text("Tag1").tag(0)
                Text("Tag2").tag(1)
            }.padding(.bottom)
            ForEach(1...3) { spot in
                ZStack {
                    Image("placeholder")
                        .frame(height: 200)
                        .clipped()
                    Text("Swift")
                        .font(.largeTitle)
                        .foregroundColor(.white)
                    }.padding(.bottom, -8)
            }.navigationBarTitle(Text("Explore"))
        }
    }
}

我不明白为什么它会破裂,但确实会破裂。我使用不当还是只是一个错误?

preview

1 个答案:

答案 0 :(得分:0)

您的SegmentedControl被拉长了,原因是您的图像。 SegmentedControl的宽度被拉伸到图像的大小,并且您正在为图像设置自定义框架而没有使其可调整大小。这就是为什么您的标签超出范围的原因。只需在图像中添加.resizable(),即可确定图像的大小,标签也会显示:

Image("placeholder")
  .resizable()
  .frame(height: 200)
  .clipped()