0

我有一个 UIImageView 我想收到一个动作。我希望它像一个按钮。它不会设置图像,因此它将是不可见的,然后当点击时我希望它更改为图像。

我知道 IBActions 不适用于 UIImageView。我怎么能做到这一点?

4

5 回答 5

2

此代码可能是您的解决方案。请尝试一下。

UIButton b=[UIButton buttonWithType:UIButtonTypeCustom];
    [b setBackgroundImage:backgroundImage forState:UIControlStateNormal];
    [b addTarget:own action:@selector(buttonClicked:) 
     forControlEvents:UIControlEventTouchUpInside];
    [own.view addSubview:b];
于 2013-04-02T09:14:07.773 回答
0

创建一个 UIButton,在 Interface Builder 中将按钮的类型设置为“自定义”,然后选择您的图像作为按钮的背景图像。将 IBAction 分配给按钮并使其在您的操作中不可见。

或者,

UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:backgroundImage 
                  forState:UIControlStateNormal];
[button addTarget:self 
           action:@selector(buttonClicked:) 
 forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button ];
于 2013-03-30T09:47:30.373 回答
0

如果你真的想使用 UIImageView 你必须设置myImageView.userInteractionEnabled = YES;然后添加一个手势识别器:

UITapGestureRecognizer *myGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTapped:)];
myGestureRecognizer.numberOfTouchesRequired = 1;
myGestureRecognizer.numberOfTapsRequired = 1;
[myImageView addGestureRecognizer:myGestureRecognizer];

否则,我建议将 UIButton 与背景图像一起使用。

于 2013-03-30T10:45:27.180 回答
0

解决方案:

将此添加到您的视图控制器:

func makeButton(imageView: UIImageView, onPressed: Selector) {

    imageView.isUserInteractionEnabled = true
    let gr = UITapGestureRecognizer()
    gr.numberOfTapsRequired = 1
    gr.numberOfTouchesRequired = 1
    gr.addTarget(self, action: onPressed)
    imageView.addGestureRecognizer(gr)
}

并使用以下方法调用它:

makeButton(myImageView, onPressed: self.buttonPressed)
于 2017-08-03T15:31:29.953 回答
-1

为什么不像普通开发人员那样只使用 UIButton 并为其设置图像和/或使其可见和启用或不可见和禁用?

如果您的 UIButton 中没有图像,我认为您仍然可以点击该区域,然后您可以通过“ setImage:forState:”为其分配图像。

于 2013-03-30T09:45:49.430 回答