我在UIButtons
内有很多UIScrollView
。那些UIButtons
已在Touch Down Repeat
中附加了相应的操作。我的问题是当我触摸按钮然后滚动时我的滚动视图不滚动,但如果我触摸按钮外它可以正常工作。
即使按下按钮,如何让滚动视图滚动?
答案 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)
将UITapGestureRecognizer
与delaysTouchesBegan
一起用作设置为true
的属性。