当UIImageView置于UIScrollView内时,为什么touchesBegan停止工作?

时间:2010-12-31 00:55:48

标签: iphone xcode interface-builder uiscrollview uiimageview

UIView -> UIImageView

我知道我的工作有点正常,因为我可以点击我的UIImageView并在NSLog()方法中看到touchesBegan语句。

UIView -> UIScrollView -> UIImageView

我将相同的UIImageView拖到UIScrollView,当我点击touchesBegan时,UIImageView不再被调用。 (我没有改变任何其他内容。所有相同的连接,方法和代码保持不变。)

为什么touchesBegan不再有效?我能做些什么才能让它再次运作?

3 个答案:

答案 0 :(得分:4)

添加点按手势以获取活动

代码是

  UITapGestureRecognizer *ges11=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Handeltap:)];
  [imagename addGestureRecognizer:ges11];

创建一个动作名称“Handle Tap”U将在那里被调用。

答案 1 :(得分:4)

默认情况下UIImageView不处理用户手势。 将UIImageView实例的userInteractionEnabled设置为YES

答案 2 :(得分:2)

查看UIScrollView的文档。

  

因为滚动视图没有滚动条,所以它必须知道触摸是否表示要滚动的意图与跟踪内容中的子视图的意图。为了做出这种确定,它通过启动计时器暂时拦截触碰事件,并且在计时器触发之前,查看触摸手指是否进行任何移动。如果计时器在没有显着位置变化的情况下触发,则滚动视图将跟踪事件发送到内容视图的触摸子视图。如果用户在计时器过去之前将手指拖得足够远,则滚动视图会取消子视图中的任何跟踪并执行滚动操作。子类可以覆盖touchesShouldBegin:withEvent:inContentView:pagingEnabledtouchesShouldCancelInContentView:方法(由滚动视图调用),以影响滚动视图处理滚动手势的方式。

我还建议您阅读Scroll View Programming Guide