UIImageView充当按钮

时间:2013-03-30 09:43:29

标签: iphone ios4

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

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

5 个答案:

答案 0 :(得分:2)

此代码可能是您的解决方案。试试看。

UIButton b=[UIButton buttonWithType:UIButtonTypeCustom];
    [b setBackgroundImage:backgroundImage forState:UIControlStateNormal];
    [b addTarget:own action:@selector(buttonClicked:) 
     forControlEvents:UIControlEventTouchUpInside];
    [own.view addSubview:b];

答案 1 :(得分:0)

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

或者,

UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:backgroundImage 
                  forState:UIControlStateNormal];
[button addTarget:self 
           action:@selector(buttonClicked:) 
 forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button ];

答案 2 :(得分:0)

如果您真的想使用UIImageView,则必须设置myImageView.userInteractionEnabled = YES;,然后为其添加手势识别器:

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

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

答案 3 :(得分: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)

答案 4 :(得分:-1)

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

如果您的UIButton中没有图片,我认为您仍然可以点按该区域,然后您可以通过“setImage:forState:”为其指定图片。