我正在尝试将我的项目转换为Swift 3,并且已经处理了大部分错误,但是我在调用手势识别器时遇到了问题。这是我的代码:
func addGestureToView(toView: UIView) {
let gesutereUp = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
$0.direction = .Up
}
let gesutereDown = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
$0.direction = .Down
}
toView.addGestureRecognizer(gesutereUp)
toView.addGestureRecognizer(gesutereDown)
}
func swipeHandler(sender: UISwipeGestureRecognizer) {
let indexPath = NSIndexPath(forRow: currentIndex, inSection: 0)
guard let cell = collectionView?.cellForItemAtIndexPath(indexPath) as? DemoCollectionViewCell else { return }
它给我和错误说明gestureUp和gestureDown都有"没有成员' swipeHandler'"
同样在行"让indexPath ..."我收到错误说"参数标签'(forRow,in section:)'不匹配任何可用的重载"
有人可以帮助解决Swift 3的转换问题吗?当我评论这些线条时,一切正常,所以这是最后一块。提前谢谢。
答案 0 :(得分:1)
替换选择器中标签sender
的下划线。
#selector(DemoViewController.swipeHandler(sender:))
关于索引路径,swift3中的新方法是:
NSIndexPath(row: currentIndex, section: 0)