如何使UIScrollView滚动手势"sub-servient"



我使用"从属"这个词,因为我不知道正确的术语。我已经尝试了各种方法,以使我的UIScrollView成为要检查的最后一个手势,以便属于滚动视图子视图的手势将在滚动视图之前或代替滚动视图触发。

例如,我有一个包含子视图的滚动视图,该子视图具有平移手势识别器。当我尝试平移时,有时滚动视图的平移会触发,有时子视图的平移手势会触发。如果直接拖动该视图,我希望子视图的手势始终如一地触发,而不是滚动视图。

您是否尝试将滚动视图的"delaysContentTouches"属性设置为 true?

或者你可以子类化UIScrollVeiw并覆盖touchesShouldCancelInContentView:方法,如下所示:

-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{
    if ([view isKindOfClass:[UIButton class]]) {//or whatever class you want to override
        return YES;
    }
    if ([view isKindOfClass:[UIControl class]]) {
        return NO;
    }
    return YES;
}

最新更新