【发布时间】:2017-10-11 09:29:47
【问题描述】:
在集合视图中,我在类初始化时创建了一个手势识别器。在viewDidLoad 方法中,然后我将手势识别器添加到集合视图中。
class ViewController: UIViewController {
@IBOutlet weak var collectionView: UICollectionView!
let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture(gesture:)))
@objc func handleLongGesture(gesture: UILongPressGestureRecognizer) {
// some code
}
override func viewDidLoad() {
super.viewDidLoad()
collectionView.addGestureRecognizer(longPressGesture)
}
}
这样,手势识别器就不起作用了。
修复很简单:只需将let longPressGesture 的行移至viewDidLoad 方法即可,一切都按预期工作。但是,我发现第一个版本不起作用有点令人惊讶。
谁能解释为什么第一个版本不起作用?是因为在创建手势识别器时,集合视图还没有准备好手势吗?那么,手势识别器必须知道哪些关于其目标的信息才能被创建?
【问题讨论】:
标签: ios uicollectionview uigesturerecognizer