因此,在Snapchat上,您向左滑动即可进行聊天,向右滑动则可以进行故事/发现。如何在我的应用程序中实现呢? SwiftUI是否具有DragGesture()的此功能?还是只有UIKit才有这个,代码是什么?
答案 0 :(得分:0)
在swiftUI中肯定有可能,但是我不太熟悉语言表达,因此我将回答UIKit,因为您暗示UIKit也对您来说是可以接受的答案。
从概念上讲,这是在UIKit中完成此操作的一种方法
将手势识别器添加到视图。您可以在此处查看操作方法:
How to programmatically send a pangesture in swift https://developer.apple.com/documentation/uikit/uiview/1622496-addgesturerecognizer
在视图的右侧或左侧添加第二个视图。 对第二个视图进行动画处理以根据触摸的移动和位置进行移动。
您还可以使用一个手势识别器来执行动画的自定义设置。通过向左和向右导航到不同的视图控制器的每个动画,对每个方向进行自定义设置。
答案 1 :(得分:0)
在 Swift 中,您可以通过类似于以下代码的方式完成此任务:
// First declare and initialize each swipe gesture you want to create. I have added swipe left and right, to go back and forth between views.
let rightSwipe : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(sender:)))
rightSwipe.direction = .right
let leftSwipe : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(sender:)))
leftSwipe.direction = .left
接下来,您要在函数中处理每次滑动。
@objc func handleSwipe(sender: UISwipeGestureRecognizer) {
if sender.direction == .right { // user swiped right
// push view controller (push new view on the navigation stack)
self.navigationController?.pushViewController(viewController(), animated: true)
} else { // user swiped left
// pop view controller (go back one view on the navigation stack)
self.navigationController?.popViewController(animated: true)
}
}