msg*_*bel 3 iphone transparency objective-c touch subview
我有一个简单的应用程序,当用户在主视图中单击UIButton时,它会在主视图上添加子视图.此子视图的大小为480x320(我处于横向模式),但此子视图中的中心图像周围有一个透明的边界.
这就是我的问题所在.我希望只有子视图才能处理触摸,直到从superview中删除,但如果透明边框上有触摸事件,则事件将传递给superview,并忽略子视图,即使子视图是完整大小的窗口.
对此进行一些研究,似乎这就是苹果打算发生的事情,因为触摸只会传递给不透明的部分,即使子视图是窗口的完整大小.它在参考文献中有解释:
我希望能够设置它,使得触摸将保留在子视图中,无论任何透明度问题.hitTest:withEvent:方法似乎做了类似的事情,但更多的是将触摸传递给不同的子视图然后触摸了那个.
有没有人能够解决这个问题?
简单的解决方案是子类化子视图并添加以下空方法...
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
Run Code Online (Sandbox Code Playgroud)
这将阻止触摸传递到超级视图,即使用户要触摸视图的透明部分.
| 归档时间: |
|
| 查看次数: |
6354 次 |
| 最近记录: |