ios – ScrollView在按钮上拖动时不滚动

我有一个滚动视图,用于滚动时,它没有按钮。现在它,并且当拖动鼠标(在模拟器上)没有任何反应(我认为,因为按钮被推动)。我如何做到这一点?
这是因为UIScrollView的UIButton子视图(我假设按钮是作为子视图添加)在跟踪触摸,而不是滚动视图。 UIScrollView方法touchesShouldCancelInContentView是这里的关键。根据其描述:“如果视图不是UIControl对象,则默认返回值为YES;否则返回NO。”,即对于UIControl对象(按钮),UIScrollView不会尝试取消触摸,从而阻止滚动。

所以,允许滚动与按钮:

>确保UIScrollView属性canCancelContentTouches设置为YES。
>子类UIScrollView和覆盖touchesShouldCancelInContentView当内容视图对象是一个UIButton时返回YES,像这样:

- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
    if ( [view isKindOfClass:[UIButton class]] ) {
        return YES;
    }

    return [super touchesShouldCancelInContentView:view];
}
http://stackoverflow.com/questions/3512563/scrollview-not-scrolling-when-dragging-on-buttons

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ios – ScrollView在按钮上拖动时不滚动