Swiftui 将图像从缩略图设置为全屏动画
当用户点击照片,打开照片的详细视图时,是否有可能复制iOS照片应用程序的行为?当用户点击照片时,它会展开以填充屏幕-在SwiftUI中 我可以在当前视图的新视图中打开照片,但是我似乎无法管理如何在视图中将图像从当前位置扩展到全屏-当图像嵌套在堆栈中时,这是否可能 以下是我的UI的基本版本:Swiftui 将图像从缩略图设置为全屏动画,swiftui,Swiftui,当用户点击照片,打开照片的详细视图时,是否有可能复制iOS照片应用程序的行为?当用户点击照片时,它会展开以填充屏幕-在SwiftUI中 我可以在当前视图的新视图中打开照片,但是我似乎无法管理如何在视图中将图像从当前位置扩展到全屏-当图像嵌套在堆栈中时,这是否可能 以下是我的UI的基本版本: struct ContentView: View { var body: some View { VStack { BannerView()
struct ContentView: View {
var body: some View {
VStack {
BannerView()
.padding()
Text("Title")
}
}
}
struct BannerView: View {
var body: some View {
HStack {
VStack {
Image(systemName: "rectangle.fill")
.resizable()
.aspectRatio(contentMode: .fit)
.padding()
.onTapGesture {
// Enbiggen image
}
}
VStack {
Text("Text")
Text("Text 1")
Text("Text 2")
}
}
.background(Color(UIColor.systemBackground))
}
}
因此,当用户点击BannerView中的图像时,它应该根据当前大小设置动画以填充屏幕
我能在头脑中管理它的唯一方法是从ContentView中隐藏Bannerview图像上的重复图像,并将其动画化,然后缩放到全屏,但是我如何在BannerView中检测图像的位置和大小呢?我能够通过简单的缩放动画将图像变成全屏,方法是为矩形的纵横比添加一个
状态
struct BannerView: View {
@State var contentMode = ContentMode.fit
var body: some View {
HStack {
VStack {
Image(systemName: "rectangle.fill")
.resizable()
.aspectRatio(contentMode: contentMode)
.padding()
.onTapGesture {
withAnimation {
self.contentMode = ContentMode.fill
}
}
}
VStack {
Text("Text")
Text("Text 1")
Text("Text 2")
}
}
.background(Color(UIColor.systemBackground))
}
}
本主题中的方法可能会有所帮助。