我有一个UIViewController,我想添加一个Pan Gesture识别器,我打算做的是创建另一个处理手势和其他功能的类,所以在init()中我得到了对UIViewController.view的引用然后我添加手势识别器,其代表是自我 . 但问题是手势的动作没有开始 . 即使它从UIViewController添加时会触发
这是我的代码片段:
// Initializer of UISwipeView
init(Target target: UIView!) {
super.init();
// Keep reference to the given view (target)
self.target = target;
// if traget is't nill
if(target != nil) {
// Add Pan Gesture Recognizer
gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(UISwipeView.didPaned))
gestureRecognizer.delegate = self;
self.target.addGestureRecognizer(gestureRecognizer);
}
}
以下是我如何从UIViewController的viewDidLoad()方法中使用它
let swipeView: UISwipeView = UISwipeView(Target: self.view);
1 回答
你最好将手势识别器添加到你的swipeView中(也许你应该重命名你的类,因为它看起来像你给它的名字的UIKit的一部分),并实现swipeView的委托,所以当用户调用swipes和UISwipeView.didPaned,然后通知代理已发生这种情况 .
在SwipeView中:
在添加SwipeView的viewController中,您必须实现SwipeViewDelegate协议,并在实例化SwipeView时将自己作为委托传递给自己 .
(没有任何机会实际运行任何此类,希望没有错别字等)