我想在导航栏中显示图像,而不是带有操作的后退按钮。所以现在我使用了图像视图并在导航栏中显示了图像。现在我想在触摸或单击图像视图时为图像视图编写动作。是否可以为图像视图编写动作?
我目前正在使用iPhone OS 4.0。
这是我的代码:
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(0,5,40,40)];
[self.navigationController.navigationBar addSubview:view1];
view1.backgroundColor = [UIColor clearColor];
UIImage *img = [UIImage imageNamed:@"Back.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
[view1 addSubview:imgView];
如何为图像视图编写动作?
答案 0 :(得分:2)
在iOS 3.2之前,你需要一个UIImageView的子类并实现触摸处理程序。 或者用自定义类型的UIButton替换你的UIImageView。
使用iOS 3.2+,UIGestureRecognizer可以有效地完成您的工作 - 只需在视图中添加适当的内容即可。
答案 1 :(得分:0)
不要直接向导航栏添加视图,除非您已准备好在将来的操作系统版本中打破它。
UIButton * b = [UIButton buttonWithType:UIButtonTypeCustom];
b.image = [UIImage imageNamed:@"Back.png"];
b.frame = (CGRect){{0,0},{40,40}};
[b addTarget:self action:@selection(wahatever) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:b] autorelease];