1

我正在尝试为我的手表应用程序从情节提要迁移到 SwiftUI。在情节提要WKInterfacePicker中,我将高度设置为 100,然后将图像作为WKImage对象添加到WKPickerItem.

当我尝试用 SwiftUI 做同样的事情时,我得到了不同的结果。我使用了这段代码:

Picker("", selection: $viewModel.temperature) {
    ForEach(1 ..< 5) { i in
        Image("temp-\(i)")
            .resizable()
            .aspectRatio(contentMode: .fill)
    }
}
.frame(height: 100)

既不.fill也不.fit使单个图像像看起来那样占据选择器的整行WKInterfacePicker。我究竟做错了什么?

4

1 回答 1

0

使用来自 vacawama 的这个 center-crop 答案

图像的高度是一个神奇的数字,因为它不会改变(将来可能会随着 watchOS 的更新),如果选择器中有 GeometryReader,它将显示奇怪的 UI 行为。

Picker("", selection: $temperature) {
    ForEach(1 ..< 5) { i in
        Image("temp-\(i)")
            .resizable()
            .scaledToFill()
            .frame(height: 30, alignment: .center)
            .clipped()

    }
}
.frame(height: 100)
于 2020-12-07T04:20:08.217 回答