【发布时间】:2016-04-19 05:19:10
【问题描述】:
我目前正在关注关于 iOS 开发的斯坦福讲座。我想创建一个可以放大或缩小笑脸大小的捏合手势。这是原始代码:
faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: "scale:"))
但是,Xcode 抱怨说“no method declared with Objective c selector 'scale'”。
我按照它的建议替换了"scale:" with Selector("scale:"),但它仍然显示相同的错误消息。
我在网上查了一下,发现从swift 2.2开始,selector的语法变成了#selector(MyClass.methodName),所以我把这行代码改成了
faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: #selector(FaceView.scale)))
这次没有显示错误信息,但是当我运行项目并尝试在模拟器中放大或缩小笑脸时,它根本没有改变大小。
【问题讨论】:
-
我认为 scale: function 中有参数...所以 swift 2.2 语法将是
#selector(FaceView.scale(_:)) -
我已将 _: 添加到选择器,但捏仍然不起作用。对不起,如果我的问题对你来说听起来很傻,我只是这方面的初学者。你能想到其他的可能性吗?再次感谢您的帮助!
-
这没什么好傻的...现在用断点检查...方法是否被调用
-
我认为该方法已被调用。我再次运行该项目,发生了一些奇怪的事情。当我捏、放大和释放鼠标时,笑脸的大小没有改变。但是之后,如果我按下鼠标并向上或向下拖动,笑脸会突然变大。我认为捏是有效的,只是模拟器在捏过程中没有显示大小的变化。令人费解……
标签: ios swift view controller selector