ContinueTrackingWithTouch:withEvent:方法没有被调用?

时间:2011-11-19 08:29:02

标签: objective-c tracking uislider uitouch cgrect

我有一个自定义的UIView类。在该视图中,有一个图像视图。 (我正在从头开始制作UISlider。)

我正试图让图像视图 - 滑块的拇指 - 在视图中移动。下面是UIView类的代码

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {

    CGPoint touchPoint = [touch locationInView:self];


    if ( CGRectContainsPoint(self.thumb.frame, touchPoint))

        self.thumb.center = CGPointMake(touchPoint.x, self.thumb.center.y);

    return YES;

}

当我将手指放在滑块的拇指上并尝试拖动它时,没有任何反应。但是,当我触摸滑块的拇指外面时,将手指拖到拇指上而不放手,然后尝试拖动拇指,它可以正常工作。

如何修改我的代码,以便在有人握住拇指并试图拖动它时调用该方法?

1 个答案:

答案 0 :(得分:0)

我的猜测是您在图像视图上启用了用户交互,而这又不会将触摸事件转发到后备逻辑视图。做这样的事情:

self.thumb.userInteractionEnabled = NO

将它放在您正在使用的任何init方法中,拇指视图不会再中断触摸事件。