Iphone 当UIImageView置于UIScrollView中时,为什么触摸开始停止工作?

Iphone 当UIImageView置于UIScrollView中时,为什么触摸开始停止工作?,iphone,xcode,interface-builder,uiscrollview,uiimageview,Iphone,Xcode,Interface Builder,Uiscrollview,Uiimageview,我知道我的工作有些正常,因为我可以点击我的UIImageView并在我的touchsbegind方法中看到NSLog()语句 我将相同的UIImageView拖动到UIScrollView中,当我点击我的UIImageView时,TouchesBegined不再被调用。(我没有更改任何其他内容。所有相同的连接、方法和代码保持不变。) 为什么触摸开始不再工作?我该怎么做才能让它重新工作呢?请看一下UIScrollView的文档 因为滚动视图没有滚动条,所以它必须知道触摸是否表示要滚动,而不是跟踪

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

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


为什么触摸开始不再工作?我该怎么做才能让它重新工作呢?

请看一下UIScrollView的文档

因为滚动视图没有滚动条,所以它必须知道触摸是否表示要滚动,而不是跟踪内容中的子视图。要进行此确定,它会通过启动计时器临时拦截触地事件,并在计时器启动之前,查看触摸手指是否移动。如果定时器触发而位置没有明显变化,则滚动视图将跟踪事件发送到内容视图的触摸子视图。如果用户在计时器结束前将手指拖得足够远,滚动视图将取消子视图中的任何跟踪,并自行执行滚动。子类可以覆盖
touchesShouldBegin:withEvent:inContentView:
PaginEnabled
touchesShouldCancelInContentView:
方法(由滚动视图调用),以影响滚动视图处理滚动手势的方式


我还建议您阅读。

添加UITap手势以获取事件

代码是

UIView -> UIScrollView -> UIImageView

创建一个动作名称“Handeltap”,您将在那里被调用。

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

UIView -> UIScrollView -> UIImageView
  UITapGestureRecognizer *ges11=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Handeltap:)];
  [imagename addGestureRecognizer:ges11];