UIButton不允许UIScrollView滚动

Mat*_* S. 13 iphone uibutton uiscrollview ios

我有很多UIButtonsUIScrollView.那些UIButtons人在他们身上附有行动Touch Down Repeat.我的问题是当我触摸按钮然后滚动时我的滚动视图不滚动,但如果我触摸按钮外它可以正常工作.

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

Dom*_*Cat 13

只要你Cancellable Content Touches在Interface Builder中设置它就应该有效.您也可以在代码中设置它:

scrollView.canCancelContentTouches = YES;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您还需要将UIScrollView子类化以使其正常工作.有关详细信息,请参见http://stackoverflow.com/a/3550157/908621 (7认同)
  • 没问题.另请查看"延迟内容触摸"属性和文档,也可能与您正在执行的操作相关. (2认同)

bra*_*ipt 9

view.canCancelContentTouches = YES如果你还没有delaysContentTouches设置,那么工作正常YES.如果你这样做,按钮根本不起作用.您需要做的是将UIScrollView(或UICollectionView/ UITableView)子类化并实现以下内容:

Objective-C的

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

斯威夫特2

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