【发布时间】:2020-05-18 08:55:13
【问题描述】:
寻找一种在不影响底层几何图形的情况下缩放视图(屏幕)的方法。
所以目前我有一个 SwiftUI 视图 (ScaleViewTest),我添加了一个 ZStack,其背景为矩形,覆盖了整个视图(忽略安全区域)
在我的预览结构中,我添加了一个值为 0.99 的缩放修饰符,它应该按比例将视图缩放到该因子...理论上。
实际发生的是它正在改变内部视图的几何形状,(在这种情况下,内部视图显示,“我们只获得了 99% 的屏幕可以使用,因此,我们没有安全区域)
我想要实现的是能够在没有内部视图几何形状的情况下缩放视图。
我试过了:
- 使用
GeometryReader获取safeAreaInsets但不起作用,因为没有安全区域。
粘贴代码以提供参考。
struct ScaleViewTest: View {
var body: some View {
ZStack {
Rectangle()
.fill(LinearGradient(gradient: Gradient(colors: [Color.init(hexadecimal: "#005A65"), Color.init(hexadecimal: "#002D33")]), startPoint: .top, endPoint: .bottom))
.edgesIgnoringSafeArea(.all)
Text("Hello, this is a new view")
.foregroundColor(.white)
.font(.system(size: 22))
}
}
}
struct ScaleViewTest_Previews: PreviewProvider {
static var previews: some View {
ScaleViewTest()
.scaleEffect(0.99)
}
}
很难理解正在发生的事情,如果您需要任何其他信息,请留下一些 cmet。但是我想要实现的一个例子就像 Airbnb,当你点击一个列表时,你会看到父视图缩小。
【问题讨论】: