无法识别触摸导航栏的图像视图。

时间:2011-09-09 12:28:41

标签: iphone objective-c ios cocoa-touch ios4

我有一个带导航栏的视图

实际上我已经拍摄了一个图像视图并将其放在导航栏上....

因为我想要按钮不在右边或左边,而是在导航栏上的某个地方

通过这种方法,我可以识别触摸视图但无法识别导航栏上的触摸?

我能改变什么...... 在这种方法中...... 为什么?

- (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
    { 

//加载视图

    }

}

4 个答案:

答案 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取消触摸。