在一个 ViewController 中为 UIImageView 和 UIView 添加手势
Posted
技术标签:
【中文标题】在一个 ViewController 中为 UIImageView 和 UIView 添加手势【英文标题】:Adding gestures for UIImageView and UIView at one ViewController 【发布时间】:2013-01-24 13:26:49 【问题描述】:新手问题。
在 IB 中,我将 UIImageView 添加到场景中,并以这种方式在 -viewDidLoad
中为其设置了一些手势:
image.userInteractionEnabled = YES;
image.multipleTouchEnabled = YES;
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(controlPan:)];
[image addGestureRecognizer:pan];
pan.delegate = self;
// and few others gestures same way
...
手势效果很好。之后在 IB 中,我将 UIView 添加到同一场景并实现与之前代码完全相同的手势,再次在 -viewDidLoad
中。但在那之后,UIView 和 UIImageView 的手势都停止工作了。我是否需要为此视图制作 .h 和 .m 并在那里实现手势识别器,或者原因可以在其他东西中?
【问题讨论】:
你是否在这里为 UIView 和 UIImageController 设置了相同的方法:action:@selector(controlPan:)?如果是,请尝试设置不同的处理程序方法。 是的,它们都连接到同一个方法。我试图连接到另一个,现在它工作了!非常感谢你!但是为什么之前手势被屏蔽了? 如果我的回答对您有帮助,请标记为正确。 【参考方案1】:如果您有相同的处理程序方法,则需要区分来自哪个对象手势,以便正确处理动作。如果您为每个对象设置不同的处理程序方法,则不必关心从哪个对象调用手势。
【讨论】:
以上是关于在一个 ViewController 中为 UIImageView 和 UIView 添加手势的主要内容,如果未能解决你的问题,请参考以下文章
ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零
Storyboard - 在 Storyboard 中为同一个 ViewController 创建两个不同的视图
从 XIB 文件中为 ViewController 视图加载自定义 UIView
在 AppDelegate 中为其他 Viewcontroller 初始化 managedContect