4

我有一个在 iOS 4 中工作的带有子类触摸响应的自定义视图。在 iOS 5 上,如果视图的背景颜色设置为clearColor.

我无法追踪到这一点,但有谁知道 iOS 5 是否改变了视图根据透明背景响应触摸的方式?

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

请注意,该问题不会影响视图中其他地方的触摸;仅沿底部边缘,添加到视图的最后一个子视图下方的任何位置;在查看没有内容的视图区域时,可能会为了触摸而将清晰的背景视为视图不存在。更改颜色,视图具有“内容”并且触摸有效!

4

2 回答 2

13

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

[view setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]];

注意: AUIView不响应触摸事件时以下alpha任何内容0.1[UIColor clearColor]设置一个alphato 0.0,所以你不会得到触摸事件。按照上述方法,您可以在透明视图上接收触摸事件。

于 2012-06-13T09:38:09.893 回答
5

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

于 2014-07-24T21:56:00.650 回答