swift 如何将矩形图像裁剪成正方形?[复制]

mrphzbgm  于 2023-03-07  发布在  Swift
关注(0)|答案(1)|浏览(142)
    • 此问题在此处已有答案**:

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)
        }
    }
}

请注意,挑战在于不要为单元设置自定义大小,而是让它在网格中占用所需的空间,同时保持方形纵横比和裁剪。

c0vxltue

c0vxltue1#

答案似乎是:

Color.blue
                        .aspectRatio(1, contentMode: .fill)
                        .overlay(
                            Image("test\(id)")
                                .resizable()
                                .scaledToFill()
                        )
                        .clipped()

相关问题