RotationGesture
SwiftUI imo-ishoralar: RotationGesture
View’larni ikki barmoq bilan RotationGesture yordamida aylantiring va burchakni .rotationEffect orqali qo‘llang.
Sintaksis
Aylantirish: Angle qiymatini o‘qish uchun RotationGesture() dan foydalaning va uni .rotationEffect(angle) bilan qo‘llang.
Aylantirish va qayta tiklash
Rasmni ikki barmoq bilan aylantiring. Qo‘yib yuborilganda u animatsiya bilan 0° ga qaytadi.
Misol
import SwiftUI
struct RotationDemo: View {
@State private var angle = Angle.zero
var body: some View {
Image(systemName: "arrow.2.circlepath")
.font(.system(size: 48))
.rotationEffect(angle)
.gesture(
RotationGesture()
.onChanged { value in angle = value }
.onEnded { _ in withAnimation(.easeInOut) { angle = .zero } }
)
}
}
import SwiftUI
struct ContentView: View {
var body: some View { RotationDemo() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Yuqoridagi misolda rasmni ikki barmoq bilan aylantirish mumkin.
Qo‘yib yuborilganda u animatsiya bilan 0° ga qaytadi.
Aylanishni jamlash
Har bir imo-ishora umumiy burchakka qo‘shilishi uchun aylanishni jamlab boring.
Burchakni gradusda ko‘rsating.
Misol
import SwiftUI
struct RotationAccumDemo: View {
@State private var total: Angle = .zero
@State private var current: Angle = .zero
var body: some View {
VStack(spacing: 12) {
Image(systemName: "arrow.triangle.2.circlepath")
.font(.system(size: 48))
.rotationEffect(total + current)
.gesture(
RotationGesture()
.onChanged { value in current = value }
.onEnded { value in total += value; current = .zero }
)
Text("Angle: \(Int((total + current).degrees))°")
}
.padding()
}
}
import SwiftUI
struct ContentView: View {
var body: some View { RotationAccumDemo() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Yuqoridagi misolda rasmni ikki barmoq bilan aylantirish mumkin.
Har bir imo-ishora umumiy burchakka qo‘shiladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
