RotationGesture


ULASHISH

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() }
  }
}

Misolni ishga tushirish »

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() }
  }
}

Misolni ishga tushirish »

Yuqoridagi misolda rasmni ikki barmoq bilan aylantirish mumkin.

Har bir imo-ishora umumiy burchakka qo‘shiladi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!