区块链技术博客
www.b2bchain.cn

探索 SwiftUI 基本手势求职学习资料

本文介绍了探索 SwiftUI 基本手势求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

前言

SwiftUI 中,我们可以通过添加不同的交互来使我们的应用程序更具交互性,这些交互可以响应我们的点击,点击和滑动。

今天,我们将回顾SwiftUI基本手势:

  • TapGesture
  • 长按手势
  • 拖动手势
  • 放大手势
  • 旋转手势

TapGesture

轻击手势使我们能够识别 View 上的一个或多个轻击。
我们有几种方法可以添加点击手势。

第一个是直接使用 .onTapGesture 修饰符。

Circle()   .onTapGesture {     // Respond to Tap Gesture    }

SwiftUI 文档中使用的其他选项是通过创建手势并将其配置为属性,然后将其与 .gesture(_:include 🙂 修饰符一起使用。

注意: 为了执行某项操作或响应轻击,我们需要使用 .onEnded 操作关闭,该操作在手势结束时触发。

struct SingleTapGestureView: View {   var singleTap: some Gesture {       TapGesture()           .onEnded { _ in               // Respond to Tap Gesture           }   }    var body: some View {       Circle()           .gesture(singleTap)   } }

实际上,我更喜欢第二种方法,因为这样我们可以创建不同的手势并通过我们的代码重复使用它们。

因此,如果我们将代码放在一起,就可以开始编写类似的东西。

探索 SwiftUI 基本手势

struct TapGestureView: View {     @State private var isAnimating = false     @State private var tapped1x = 0      var singleTap: some Gesture {         TapGesture()             .onEnded { _ in                 tapped1x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 1X: (tapped1x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("1X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(singleTap)         }     } }

类似地,我们只需使用 TapGesture(count:Int) 初始化程序就可以控制要响应的数量。

在这种情况下,您需要点击3次才能触发 .onEnded 操作关闭。

探索 SwiftUI 基本手势

struct TapGesture3xView: View {     @State private var isAnimating = false     @State private var tapped3x = 0      var multipleTap: some Gesture {         TapGesture(count: 3)             .onEnded { _ in                 tapped3x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 3X: (tapped3x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("3X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(multipleTap)         }     } }

长按手势

长按手势可让我们在用户长按定义的时间后以及在用户长按的时间内执行操作。

我们可以设置一个最小持续时间,以识别我们的长按手势。 可以在 LongPressGesture 初始化程序中进行设置。

LongPressGesture(minimumDuration: 2)

然后,我们可以使用 .updating 方法在长按期间执行操作,并使用 .onEnded 在识别到我们的手势时执行操作。

在此示例中,我将在长按操作期间更新 Circle() 的大小和颜色,并且当识别出手势时,我将显示“文本已完成”。

另外,我在这里使用的是 GestureState 属性包装器,该包装器在长按期间设置为 true ,在手势结束时设置为 false 。 我正在将此属性包装器用于示例动画。

探索 SwiftUI 基本手势

“`swift
struct LongPressGestureView: View {
@GestureState private var isLongPressDetected = false
@State private var isDone = false

var longPress: some Gesture {     LongPressGesture(minimumDuration: 2)         .updating($isLongPressDetected) { currentState, gestureState, transaction in             DispatchQueue.main.async {                 isDone = false             }             gestureState = currentState             transaction.animation = Animation.easeIn(duration: 2)         }         .onEnded { done in             isDone = done         }

前言

SwiftUI 中,我们可以通过添加不同的交互来使我们的应用程序更具交互性,这些交互可以响应我们的点击,点击和滑动。

今天,我们将回顾SwiftUI基本手势:

  • TapGesture
  • 长按手势
  • 拖动手势
  • 放大手势
  • 旋转手势

TapGesture

轻击手势使我们能够识别 View 上的一个或多个轻击。
我们有几种方法可以添加点击手势。

第一个是直接使用 .onTapGesture 修饰符。

Circle()   .onTapGesture {     // Respond to Tap Gesture    }

SwiftUI 文档中使用的其他选项是通过创建手势并将其配置为属性,然后将其与 .gesture(_:include 🙂 修饰符一起使用。

注意: 为了执行某项操作或响应轻击,我们需要使用 .onEnded 操作关闭,该操作在手势结束时触发。

struct SingleTapGestureView: View {   var singleTap: some Gesture {       TapGesture()           .onEnded { _ in               // Respond to Tap Gesture           }   }    var body: some View {       Circle()           .gesture(singleTap)   } }

实际上,我更喜欢第二种方法,因为这样我们可以创建不同的手势并通过我们的代码重复使用它们。

因此,如果我们将代码放在一起,就可以开始编写类似的东西。

探索 SwiftUI 基本手势

struct TapGestureView: View {     @State private var isAnimating = false     @State private var tapped1x = 0      var singleTap: some Gesture {         TapGesture()             .onEnded { _ in                 tapped1x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 1X: (tapped1x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("1X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(singleTap)         }     } }

类似地,我们只需使用 TapGesture(count:Int) 初始化程序就可以控制要响应的数量。

在这种情况下,您需要点击3次才能触发 .onEnded 操作关闭。

探索 SwiftUI 基本手势

struct TapGesture3xView: View {     @State private var isAnimating = false     @State private var tapped3x = 0      var multipleTap: some Gesture {         TapGesture(count: 3)             .onEnded { _ in                 tapped3x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 3X: (tapped3x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("3X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(multipleTap)         }     } }

长按手势

长按手势可让我们在用户长按定义的时间后以及在用户长按的时间内执行操作。

我们可以设置一个最小持续时间,以识别我们的长按手势。 可以在 LongPressGesture 初始化程序中进行设置。

LongPressGesture(minimumDuration: 2)

然后,我们可以使用 .updating 方法在长按期间执行操作,并使用 .onEnded 在识别到我们的手势时执行操作。

在此示例中,我将在长按操作期间更新 Circle() 的大小和颜色,并且当识别出手势时,我将显示“文本已完成”。

另外,我在这里使用的是 GestureState 属性包装器,该包装器在长按期间设置为 true ,在手势结束时设置为 false 。 我正在将此属性包装器用于示例动画。

探索 SwiftUI 基本手势

“`swift
struct LongPressGestureView: View {
@GestureState private var isLongPressDetected = false
@State private var isDone = false

var longPress: some Gesture {     LongPressGesture(minimumDuration: 2)         .updating($isLongPressDetected) { currentState, gestureState, transaction in             DispatchQueue.main.async {                 isDone = false             }             gestureState = currentState             transaction.animation = Animation.easeIn(duration: 2)         }         .onEnded { done in             isDone = done         }

前言

SwiftUI 中,我们可以通过添加不同的交互来使我们的应用程序更具交互性,这些交互可以响应我们的点击,点击和滑动。

今天,我们将回顾SwiftUI基本手势:

  • TapGesture
  • 长按手势
  • 拖动手势
  • 放大手势
  • 旋转手势

TapGesture

轻击手势使我们能够识别 View 上的一个或多个轻击。
我们有几种方法可以添加点击手势。

第一个是直接使用 .onTapGesture 修饰符。

Circle()   .onTapGesture {     // Respond to Tap Gesture    }

SwiftUI 文档中使用的其他选项是通过创建手势并将其配置为属性,然后将其与 .gesture(_:include 🙂 修饰符一起使用。

注意: 为了执行某项操作或响应轻击,我们需要使用 .onEnded 操作关闭,该操作在手势结束时触发。

struct SingleTapGestureView: View {   var singleTap: some Gesture {       TapGesture()           .onEnded { _ in               // Respond to Tap Gesture           }   }    var body: some View {       Circle()           .gesture(singleTap)   } }

实际上,我更喜欢第二种方法,因为这样我们可以创建不同的手势并通过我们的代码重复使用它们。

因此,如果我们将代码放在一起,就可以开始编写类似的东西。

探索 SwiftUI 基本手势

struct TapGestureView: View {     @State private var isAnimating = false     @State private var tapped1x = 0      var singleTap: some Gesture {         TapGesture()             .onEnded { _ in                 tapped1x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 1X: (tapped1x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("1X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(singleTap)         }     } }

类似地,我们只需使用 TapGesture(count:Int) 初始化程序就可以控制要响应的数量。

在这种情况下,您需要点击3次才能触发 .onEnded 操作关闭。

探索 SwiftUI 基本手势

struct TapGesture3xView: View {     @State private var isAnimating = false     @State private var tapped3x = 0      var multipleTap: some Gesture {         TapGesture(count: 3)             .onEnded { _ in                 tapped3x += 1                  withAnimation(Animation.easeOut(duration: 0.5)) {                     self.isAnimating = true                 }                  DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {                     self.isAnimating = false                 }             }     }      var body: some View {         VStack {             Text("Tapped 3X: (tapped3x) times")                 .font(.caption)              Circle()                 .frame(width: 80, height: 80)                 .foregroundColor(.orange)                 .overlay(                     Text("3X")                         .fontWeight(.medium)                 )                 .background(                     Circle()                         .strokeBorder(Color.blue, lineWidth: 3)                         .scaleEffect(isAnimating ? 1.5 : 1)                         .opacity(isAnimating ? 0 : 1)                 )                 .gesture(multipleTap)         }     } }

长按手势

长按手势可让我们在用户长按定义的时间后以及在用户长按的时间内执行操作。

我们可以设置一个最小持续时间,以识别我们的长按手势。 可以在 LongPressGesture 初始化程序中进行设置。

LongPressGesture(minimumDuration: 2)

然后,我们可以使用 .updating 方法在长按期间执行操作,并使用 .onEnded 在识别到我们的手势时执行操作。

在此示例中,我将在长按操作期间更新 Circle() 的大小和颜色,并且当识别出手势时,我将显示“文本已完成”。

另外,我在这里使用的是 GestureState 属性包装器,该包装器在长按期间设置为 true ,在手势结束时设置为 false 。 我正在将此属性包装器用于示例动画。

探索 SwiftUI 基本手势

“`swift
struct LongPressGestureView: View {
@GestureState private var isLongPressDetected = false
@State private var isDone = false

var longPress: some Gesture {     LongPressGesture(minimumDuration: 2)         .updating($isLongPressDetected) { currentState, gestureState, transaction in             DispatchQueue.main.async {                 isDone = false             }             gestureState = currentState             transaction.animation = Animation.easeIn(duration: 2)         }         .onEnded { done in             isDone = done         }

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 探索 SwiftUI 基本手势求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们