我有一个UIImageView,我想收到一个动作。我希望它像一个按钮。它不会有图像集,因此它将不可见,然后点击时我希望它更改为图像。
我知道IBActions不适用于UIImageView。我怎么能做到这一点?
答案 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:
”为其指定图片。