MPVolumeView窃取相邻UIButton的触摸

时间:2014-06-28 20:44:01

标签: ios objective-c cocoa-touch uibutton uigesturerecognizer

enter image description here

我在MPVolumeView周围聚集了几个UIButton。只有当MPVolumeView启用了“用户交互”时,右下角才会响应触摸。它只是那个按钮而没有其他按钮。如果我在卷视图上禁用用户交互,则该按钮响应正常。有时按钮会正常工作。它似乎完全是随机发生的。我将两个视图的背景都设置为红色,显然它们彼此不重叠。这是我的iPhone XIB。我的iPad XIB以几乎相同的方式布局,只需要更大的按钮,它没有这个问题。

所以我开始使用here方法记录触摸,我看到的是MPVolumeView正在窃取这些触摸。

touchesBegan: ( "<UITouch: 0x1659e5a0> phase: Began tap count: 1 window: <UIWindow: 0x1656f590; frame = (0 0; 320 568); autoresize = W+H; gestureRecognizers = <NSArray: 0x1656a770>; layer = <UIWindowLayer: 0x1656cf20>> view: <MPVolumeView: 0x1655cd10; frame = (66 64; 176 29); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0x1655ce80>> location in window: {63, 408.5} previous location in window: {63, 408.5} location in view: {215.5, 12} previous location in view: {215.5, 12}" )

在按钮实际接收触摸的极少数情况下,日志看起来像这样:

touchesBegan: ( "<UITouch: 0x1799d2d0> phase: Began tap count: 1 window: <UIWindow: 0x1656f590; frame = (0 0; 320 568); autoresize = W+H; gestureRecognizers = <NSArray: 0x1656a770>; layer = <UIWindowLayer: 0x1656cf20>> view: <UIButton: 0x16561b70; frame = (254 55; 50 50); opaque = NO; autoresize = TM+BM; tag = 3; gestureRecognizers = <NSArray: 0x16512410>; layer = <CALayer: 0x165f3990>> location in window: {60, 420} previous location in window: {60, 420} location in view: {39, 24} previous location in view: {39, 24}" )

我很困惑!谁能告诉我可能导致这种情况的原因呢?

0 个答案:

没有答案