我有一个自定义滚动视图,我将它添加到带有按钮、文本字段和滑块的视图控制器中。
在我添加之前,我遇到了滑块和滚动视图的问题(滚动视图没有滚动):
scroll.m
scrollView.canCancelContentTouches=NO;
scrollView.delaysContentTouches=NO;
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view {
if ([view isKindOfClass:[UISlider class]]) {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:view];
CGRect thumbRect;
UISlider *mySlide = (UISlider*) view;
CGRect trackRect = [mySlide trackRectForBounds:mySlide.bounds];
thumbRect = [mySlide thumbRectForBounds:mySlide.bounds trackRect:trackRect value:mySlide.value];
if (CGRectContainsPoint(thumbRect, location))
return YES;
}
return NO;
}
现在它正在滚动,但滚动视图上的按钮和文本字段不再响应触摸事件。我已经尝试了这个站点的一些解决方案:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if (self.scrollView.superview != nil) {
if ([touch.view isKindOfClass:[UIButton class]])
{
return NO; // ignore the touch
}
return YES;
}
按钮不走运。有什么建议么?谢谢。
更新
我在按钮的目标操作中放置了一个 NSLog 并且它们没有被调用。这是代表问题而不是触摸事件问题吗?