0

我有一个自定义滚动视图,我将它添加到带有按钮、文本字段和滑块的视图控制器中。

在我添加之前,我遇到了滑块和滚动视图的问题(滚动视图没有滚动):

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 并且它们没有被调用。这是代表问题而不是触摸事件问题吗?

4

0 回答 0