ios – 没有调用TouchesEnded和TouchesCancelled

前端之家收集整理的这篇文章主要介绍了ios – 没有调用TouchesEnded和TouchesCancelled前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,我在 Xcode 4.5 / iOS 6上使用选项卡式应用程序模板测试了以下内容.

>创建了一个选项卡式应用程序.
>创建了一个名为SampleButton的UIButton子类并实现了
以下方法

- (void)touchesBegan:(NSSet *)touches
           withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
}

- (void)touchesCancelled:(NSSet *)touches
               withEvent:(UIEvent *)event
{
    [super touchesCancelled:touches withEvent:event];
}

- (void) touchesMoved:(NSSet *)touches
            withEvent:(UIEvent *)event
{
    [super touchesMoved:touches withEvent:event];
}

- (void)touchesEnded:(NSSet *)touches
           withEvent:(UIEvent *)event
{
    [super touchesEnded:touches withEvent:event];
}

>将此SampleButton添加到第一个选项卡.
>为所有触摸方法添加了断点.
>在设备上运行.
>测试了所有触摸方法都按预期触发.
>现在触摸SampleButton,然后按第二个选项卡.

结果:视图切换到第二个选项卡,但在SampleButton中从不调用touchesCancelled和/或touchesEnded.如果在我触摸该按钮时视图发生变化,那么其中一个或那个不应该发射吗?这被证明是一个巨大的问题,因为在我的应用程序中,当按钮关闭时我正在播放声音,如果用户在按下按钮时切换标签,它将永远不会停止播放.看起来像这样在iOS3和iOS4中工作得很好.

解决方法

对按钮进行子类化似乎很难做到这一点.只需告诉音频播放器停止播放viewDidDisappear:animated:方法,如R.A.建议.

猜你在找的iOS相关文章