我有一个带导航栏的视图
实际上我已经拍摄了一个图像视图并将其放在导航栏上....
因为我想要按钮不在右边或左边,而是在导航栏上的某个地方
通过这种方法,我可以识别触摸视图但无法识别导航栏上的触摸?
我能改变什么...... 在这种方法中...... 为什么?
- (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
{
//加载视图
}
}
答案 0 :(得分:2)
你可以在你的UIImageView中添加一个UITapGestureRecognizer,这应该可以解决这个问题
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,以便能够接收手势识别器事件。
希望这有帮助。
答案 1 :(得分:0)
UINavigationBar本身没有设置为返回触摸,因为我认为它不是实际的UIView(touchesBegan)方法适用的部分。相反,您可以将各种项目推送到导航栏(例如按钮),您可以为其定义交互。
见其参考文献here。
答案 2 :(得分:0)
USer Interaction必须启用UINavigation Bar属性,然后应用touch方法..
答案 3 :(得分:0)
你可以尝试:
[imageView setUserInteractionEnabled:NO];
这可能会阻止您的imageview取消触摸。