触摸某些元素时,UIScrollView不会滚动

时间:2014-10-23 13:53:53

标签: ios objective-c uiscrollview scroll

我有一个带有Autolayout的UIScrollView,上面有几个元素。问题是当我尝试滚动触摸某些元素时没有任何反应,但是当我尝试滚动触摸其他元素时,滚动效果非常好。

UIScrollView里面有几个带有UITextfields和UIButtons的UIViews。

似乎触摸事件或滚动事件未发送到父UIScrollView,而只是针对某些视图。

有什么想法吗?

1 个答案:

答案 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