我有一个带有Autolayout的UIScrollView,上面有几个元素。问题是当我尝试滚动触摸某些元素时没有任何反应,但是当我尝试滚动触摸其他元素时,滚动效果非常好。
UIScrollView里面有几个带有UITextfields和UIButtons的UIViews。
似乎触摸事件或滚动事件未发送到父UIScrollView,而只是针对某些视图。
有什么想法吗?
答案 0 :(得分:2)
UIScrollView
有一个方法-(BOOL)touchesShouldCancelInContentView:(UIView *)view
,如果view不是UIControl
对象,则默认返回YES。否则,它返回NO。因此,如果要在触摸UIControl
对象时启用滚动,则应从UIScrollView
继承并覆盖touchesShouldCancelInContentView:
以始终返回YES:
@interface MYScrollView : UIScrollView
@end
@implementation MYScrollView
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
return YES;
}
@end