我有一个自定义的scrollview,我添加到一个带有按钮,文本字段和滑块的viewcontroller。
我在滑块和滚动视图(滚动视图没有滚动)方面遇到问题,直到我添加:
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,但它们没有被调用。这是代表问题而非触摸事件问题吗?