-2

我对 iOS 开发很陌生,所以这似乎是一个愚蠢的问题。在我的 xib 文件中,我采用了一个 UIImageView,它会在页面加载时显示图像。但是当用户点击图像时,我希望加载下一个视图。但我无法做到这一点,因为我们不能有委托而不是 UIImage 视图的目标操作机制。很多地方,我发现一种解决方法..使用按钮,然后在其上放置图像,然后使用它..但我想要第一种工作方式..请帮助..

4

3 回答 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 回答