Понимание scaleEffect в SwiftUI
Следующий код анимирует размер изображения сразу после его загрузки, он анимирует его от половины размера до полного размера, но есть кое-что, что я не совсем понимаю в параметрах в scaleFactor
.
Может кто-нибудь объяснить параметр внутри 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
}
}
}
}
1 ответ
Есть несколько заявленных перегруженных 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)
который задокументирован как
Масштабирует визуализированный вывод этого представления на заданную величину как в горизонтальном, так и в вертикальном направлениях относительно точки привязки.
а также scaleFactor ? 1.0 : 0.5
означает просто тернарный оператор на месте для первого scale
параметр, который применяется либо 1.0 (идентичность), либо 0.5 (половина) в зависимости от соответствующего состояния просмотра.