- 此问题在此处已有答案**:
How to make a LazyVGrid of square images?(2个答案)
4天前关闭。
在这段代码中,网格中的项目显示为正方形,但是图像被压扁了。其中一些图像是矩形的,我想把它裁剪成正方形以适合这个网格。
struct GalleryView: View {
@State private var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9].shuffled()
let columns = [
GridItem(.adaptive(minimum: 100, maximum: 1000)),
GridItem(.adaptive(minimum: 100, maximum: 1000))
]
var body: some View {
ScrollView {
LazyVGrid(columns: columns) {
ForEach(arr, id: \.self) { id in
Image("test\(id)")
.resizable()
.aspectRatio(1, contentMode: .fit)
.clipShape(Rectangle()) //this has 0 effect
.cornerRadius(20)
.listRowSeparator(.hidden)
}
}
.padding(.horizontal)
}
}
}
请注意,挑战在于不要为单元设置自定义大小,而是让它在网格中占用所需的空间,同时保持方形纵横比和裁剪。
1条答案
按热度按时间c0vxltue1#
答案似乎是: