无法识别导航栏的图像视图上的触摸。?
Posted
技术标签:
【中文标题】无法识别导航栏的图像视图上的触摸。?【英文标题】:Can't Recognize Touch On navigation Bar's Image View.? 【发布时间】:2011-09-09 12:28:41 【问题描述】:我有一个带导航栏的视图
实际上我已经拍摄了一个图像视图并将其放在导航栏上......
我希望按钮不在右侧或左侧,而是在导航栏上的某个位置
通过这种方法,我可以识别视图上的触摸,但无法识别导航栏上的触摸?
我能改变什么吗... 在这种方法... 为什么?
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
CGPoint p;
p.x=0;
p.y=0;
p = [[touches anyObject] locationInView:self.nvbrCalculateBar];
NSLog(@" %f",p.x);
if(p.x==0 && q.x==0)
else
//加载视图
【问题讨论】:
【参考方案1】:您可以将 UITapGestureRecognizer 添加到您的 UIImageView 中,这应该可以解决问题
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapEvent:)];
[yourImageView addGestureRecognizer:tap];
[tap release];
- (void)tapEvent:(UITapGestureRecognizer *)gesture
//Do whatever you need when user taps the imageView
还将 imageView 的 userInteractionEnabled 设置为 YES 以便能够接收手势识别器事件。
希望这会有所帮助。
【讨论】:
谢谢.......:.) 非常好用...因为您已经启用了返回 userIntercation 我已经尝试过.. 很多以前...谢谢.... 非常感谢您的回答。很遗憾你没有更多的积分,因为在看了一天各种不完整或令人困惑的资源之后,这终于是一个合适的回应。【参考方案2】:UINavigationBar 本身没有设置为返回触摸,因为我相信它不是实际 UIView(touchesBegan 方法适用)的一部分。相反,您可以将各种项目推送到导航栏(例如按钮)上,您可以为其定义交互。
参见其参考here。
【讨论】:
【参考方案3】:用户交互必须启用 UINavigation Bar 属性,然后应用触摸方法..
【讨论】:
【参考方案4】:你可以试试:
[imageView setUserInteractionEnabled:NO];
这应该会阻止您的 imageview 取消触摸。
【讨论】:
以上是关于无法识别导航栏的图像视图上的触摸。?的主要内容,如果未能解决你的问题,请参考以下文章