了解 SwiftUI 中的 scaleEffect
Understanding scaleEffect in SwiftUI
以下代码在图像加载后立即设置图像大小的动画,将其从一半大小设置为完整大小,但是我对 [=11 中的参数不完全了解=].
有人可以解释一下 scaleEffect
修饰符中的参数吗?
- 怎么可以带布尔型参数?
- 如何输入比例范围
1.0 : 0.5
参数?
?
有什么作用?
据我所知,scaleEffect
修饰符只有两个参数,一个CGFloat
和一个UnitPoint
。
struct ContentView: View {
@State private var scaleFactor = false
var body: some View {
VStack {
Image("top-image")
.scaleEffect(scaleFactor ? 1.0 : 0.5)
.animation(.easeInOut(duration: 1.0))
.onAppear() {
self.scaleFactor = true
}
}
}
}
有几个声明的重载scaleEffect
extension View {
@inlinable public func scaleEffect(_ scale: CGSize, anchor: UnitPoint = .center) -> some View
@inlinable public func scaleEffect(_ s: CGFloat, anchor: UnitPoint = .center) -> some View
@inlinable public func scaleEffect(x: CGFloat = 0.0, y: CGFloat = 0.0, anchor: UnitPoint = .center) -> some View
}
在问题的例子中它使用了第二个,所以它实际上是
Image("top-image")
.scaleEffect(scaleFactor ? 1.0 : 0.5, anchor: .center)
记录为
Scales this view’s rendered output by the given amount in both the
horizontal and vertical directions, relative to an anchor point.
和 scaleFactor ? 1.0 : 0.5
表示第一个 scale
参数的就地三元运算符,根据相应的视图状态应用 1.0(身份)或 0.5(一半)。
以下代码在图像加载后立即设置图像大小的动画,将其从一半大小设置为完整大小,但是我对 [=11 中的参数不完全了解=].
有人可以解释一下 scaleEffect
修饰符中的参数吗?
- 怎么可以带布尔型参数?
- 如何输入比例范围
1.0 : 0.5
参数? ?
有什么作用?
据我所知,scaleEffect
修饰符只有两个参数,一个CGFloat
和一个UnitPoint
。
struct ContentView: View {
@State private var scaleFactor = false
var body: some View {
VStack {
Image("top-image")
.scaleEffect(scaleFactor ? 1.0 : 0.5)
.animation(.easeInOut(duration: 1.0))
.onAppear() {
self.scaleFactor = true
}
}
}
}
有几个声明的重载scaleEffect
extension View { @inlinable public func scaleEffect(_ scale: CGSize, anchor: UnitPoint = .center) -> some View @inlinable public func scaleEffect(_ s: CGFloat, anchor: UnitPoint = .center) -> some View @inlinable public func scaleEffect(x: CGFloat = 0.0, y: CGFloat = 0.0, anchor: UnitPoint = .center) -> some View }
在问题的例子中它使用了第二个,所以它实际上是
Image("top-image")
.scaleEffect(scaleFactor ? 1.0 : 0.5, anchor: .center)
记录为
Scales this view’s rendered output by the given amount in both the horizontal and vertical directions, relative to an anchor point.
和 scaleFactor ? 1.0 : 0.5
表示第一个 scale
参数的就地三元运算符,根据相应的视图状态应用 1.0(身份)或 0.5(一半)。