Sam*_*Sam 9 iphone uinavigationbar uiview
我有一个应用程序,有三个按钮(实际上UIView
是)水平放置在导航栏下方.
这三个按钮的尺寸足够大(例如,比后退按钮大),但是当击中大致位于前三分之一时,它们不会响应触摸.
我知道直接位于导航栏下方的这个区域对于后退按钮和其他UINavigation项目来说是"保留"的,其触摸区域扩展到导航栏之外(相当大的余量),但在某些情况下还有甚至附近的一个导航项目来窃取事件,我的观点仍然没有回应.
奇怪的是,我正在调用hitTest
我的UIView中的方法,而不是touchesBegan/Ended/etc.
结果是按下按钮是非常困难的,如果一个在a附近的任何地方UINavigationItem
,该项目将窃取事件,即使hitTest
我正在返回正确UIView
的系统.
不幸的是,我是实施者,而不是设计师,因此设计变更是最后的手段.
有任何想法吗?谢谢!
您必须继承您的UINavigationBar并在CustomNavigationBar中执行此操作:
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if ([self pointInside:point withEvent:event]) {
self.userInteractionEnabled = YES;
} else {
self.userInteractionEnabled = NO;
}
return [super hitTest:point withEvent:event];
}
Run Code Online (Sandbox Code Playgroud)
有关如何子类UINavigationBar的信息,您可以在这里找到.
归档时间: |
|
查看次数: |
2269 次 |
最近记录: |