SwiftUI 學習Gesture - 點按手勢TapGesture
xcode 13.4.1, swift 5.5, iOS 15.4
2022-08-23
Gesture是使用者與App交互的主要途徑,包括點按(Tap)、長按手勢(Long Press)、拖曳手勢(Drag)、縮放手勢(MagnificationGesture)、旋轉手勢(RotationGesture),這次先講講點按(Tap)。
1. 只要在View上加上gesture方法,需傳入點按手勢TapGesture,並在onEnded的closure內通過改變isPressed來控制opacity。
import SwiftUI
struct GestureExample : View {
@State private var isPressed = false
var body: some View {
Image(systemName: "ladybug.fill")
.foregroundColor(.green)
.opacity(isPressed ? 0.4 : 1.0)
.font(.system(size: 200))
.gesture(
TapGesture()
.onEnded({
isPressed.toggle()
})
)
}
}
2. 點按手勢TapGesture默認是點按一次,也可以點按多次,比如下面實作是點按2點。
import SwiftUI
struct GestureExample : View {
@State private var isPressed = false
var body: some View {
Image(systemName: "ladybug.fill")
.foregroundColor(.green)
.opacity(isPressed ? 0.4 : 1.0)
.font(.system(size: 200))
.gesture(
TapGesture(count: 2)
.onEnded({
isPressed.toggle()
})
)
}
}