swiftUI 画廊中间画变大
时间: 2023-09-03 12:10:01 浏览: 46
要实现在SwiftUI画廊中心放大的效果,你可以使用SwiftUI的GeometryReader来获取视图的位置和大小,并根据位置和大小来缩放视图。下面是一个简单的示例代码:
```
struct GalleryView: View {
let images = ["image1", "image2", "image3", "image4", "image5", "image6"]
@State private var selectedImage: String?
var body: some View {
ScrollView {
LazyHGrid(rows: [GridItem(.flexible())]) {
ForEach(images, id: \.self) { image in
GeometryReader { geometry in
Image(image)
.resizable()
.scaledToFit()
.cornerRadius(10)
.scaleEffect(selectedImage == image ? 1.2 : 1)
.onTapGesture {
withAnimation {
selectedImage = image
}
}
.position(x: geometry.frame(in: .global).midX, y: geometry.frame(in: .global).midY)
}
.frame(width: 200, height: 200)
}
}
}
}
}
```
在这个代码中,我们使用了GeometryReader来获取每个图片的位置和大小,然后使用scaleEffect来缩放图片。当用户点击图片时,我们使用withAnimation来设置selectedImage的值,从而触发缩放效果。我们还使用了position来将每个图片放置在正确的位置。