我对 iOS 开发很陌生,所以这似乎是一个愚蠢的问题。在我的 xib 文件中,我采用了一个 UIImageView,它会在页面加载时显示图像。但是当用户点击图像时,我希望加载下一个视图。但我无法做到这一点,因为我们不能有委托而不是 UIImage 视图的目标操作机制。很多地方,我发现一种解决方法..使用按钮,然后在其上放置图像,然后使用它..但我想要第一种工作方式..请帮助..
问问题
65 次
3 回答
1
使用 UITapGestureRecognizer ,并且不要忘记设置imageView.userInteractionEnabled = YES;
,因为默认情况下图像没有用户交互。
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[singleTap setNumberOfTapsRequired:1];
[imageView addGestureRecognizer:singleTap];
-(void)handleSingleTap:(id)sender {
// push you view here
}
(或)如果你愿意
带背景图像的按钮。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(270,10,30,30);
[button setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
于 2013-07-19T05:55:34.623 回答
0
您可以使用 UIButton,而不是使用 UIImageView。
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[myBtn setBackgroundImage:[UIImage imageNamed:@"your_image_Name"] forState:UIControlStateNormal];
[myBtn setBackgroundImage:[UIImage @"your_image_Name"] forState:UIControlStateHighlighted];
[myBtn addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
还写按钮动作:
-(void)buttonAction:(id)sender {
// Do whatever you want
}
在 XIB 的情况下,只需使用 UIButton 而不是 UIImageView 并根据需要为状态 Normal 和 Highlighted 设置背景图像。休息一下,您可以从 XIB 管理按钮的操作。
于 2013-07-19T05:57:31.193 回答
0
您还可以UIButton
在您的...之上添加一个完全透明的UIImageView
...应该是首选,因为每个元素都有一个干净的语义。
于 2013-07-19T08:43:06.217 回答