在SwiftUI中,你可以使用.scaleEffect()和.rotationEffect()来实现缩放和旋转动画,缩放和旋转的内容可以是图片,文字等view视图。
scaleEffect可以实现缩放效果,配合动画可以实现好看的过度效果,其中的参数是缩放的倍数,1表示原本大小,大于1表示放大,小于1表示缩小。
示例代码:
Text("Hello, World!")
.font(.title)
.scaleEffect(useEffect ? 1 : 0.7)
rotationEffect表示实现旋转效果,配合动画可以实现好看的旋转效果,其中的参数是旋转的度数,示例代码:
Image("xigua")
.resizable()
.frame(width: 200, height: 200)
.scaleEffect(useEffect ? 1 : 0.7)
.rotationEffect(.degrees(useEffect ? 100 : 0))
案例使用代码:
//
// ScalRotaEffect.swift
// SwiftBook
//
// Created by Song on 2024/7/21.
//
import SwiftUI
struct ScalRotaEffect: View {
// 缩放和旋转效果
@State var useEffect = false
var body: some View {
VStack {
Text("Hello, World!")
.font(.title)
.scaleEffect(useEffect ? 1 : 0.7)
Image("xigua")
.resizable()
.frame(width: 200, height: 200)
.scaleEffect(useEffect ? 1 : 0.7)
.rotationEffect(.degrees(useEffect ? 100 : 0))
Button(action: {
withAnimation { useEffect.toggle() }
}, label: {
Text("旋转和缩放")
}).padding()
}
}
}
#Preview {
ScalRotaEffect()
}