UIView背景颜色影响iOS 5中的触摸

joh*_*ers 3 iphone objective-c uikit uiview ipad

我有一个自定义视图,其子类触摸响应在iOS 4中有效.在iOS 5上,如果视图的背景颜色设置为,沿着视图的底部边缘触摸时,这些触摸根本不会响应clearColor.

我无法追踪到这一点,但有人知道iOS 5是否改变了视图响应触摸的方式,具体取决于透明背景?

除了将背景颜色设置为任何不透明颜色之外,我不能对代码进行任何更改,orangeColor并且视图完全响应.

请注意,该问题不会影响视图中其他位置的触摸; 仅沿底边,最后一个子视图下方的任何位置添加到视图中; 据推测,当查看没有内容的视图区域时,清晰的背景被视为为了触摸而不存在视图.改变颜色,视图有"内容",触摸工作!

skr*_*ram 12

而不是使用[UIColor clearColor],尝试使用此:

[view setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]];
Run Code Online (Sandbox Code Playgroud)

注意:UIView当以下alpha任何内容时,A 不响应触摸事件0.1.[UIColor clearColor]设置alpha0.0,所以你不会得到触摸事件.按照上述方法,您可以在透明视图上接收触摸事件.

  • 至少在iOS 8中,似乎触发事件是在alpha设置为0.01的情况下触发,不再需要为0.1. (2认同)

Arc*_*gon 5

如果其他人遇到此问题并想要一个比为背景设置部分不透明度更好的解决方案,您可以将视图的opaque属性设置为NO,然后添加一个空drawRect:方法.(经测试并在iOS8上运行,测试版4)