UIButton不允许UIScrollView滚动

时间:2011-02-21 19:10:35

标签: iphone ios uiscrollview uibutton

我在UIButtons内有很多UIScrollView。那些UIButtons已在Touch Down Repeat中附加了相应的操作。我的问题是当我触摸按钮然后滚动时我的滚动视图不滚动,但如果我触摸按钮外它可以正常工作。

即使按下按钮,如何让滚动视图滚动?

3 个答案:

答案 0 :(得分:12)

只要在Interface Builder中设置了Cancellable Content Touches,它就可以正常工作。您也可以在代码中设置它:

scrollView.canCancelContentTouches = YES;

答案 1 :(得分:9)

如果您还没有将view.canCancelContentTouches = YES设置为delaysContentTouches,那么YES就可以了。如果你这样做,按钮根本不起作用。您需要做的是继承UIScrollView(或UICollectionView / UITableView)并实施以下内容:

<强>目标C

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

Swift 2

override func touchesShouldCancelInContentView(view: UIView) -> Bool {
    if view is UIButton {
        return true
    }
    return super.touchesShouldCancelInContentView(view)
}

答案 2 :(得分:0)

UITapGestureRecognizerdelaysTouchesBegan一起用作设置为true的属性。