use*_*092 24 iphone cocoa objective-c
我试图让UIImageView接受动作并在每次点击UIImageVie时触发它们,但是我很难让它工作,请帮帮我
但这就是我正在做的事情:
[View setUserInteractionEnabled:YES];
[View addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
- (void) myAction:(id)sender
{
NSLog(@"It works!");
}
Run Code Online (Sandbox Code Playgroud)
The*_*ger 73
Objective-C的
在你的viewDidLoad:方法中写这个:
-(void)viewDidLoad {
UIImageView *imageview = [[UIImageView alloc]initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
[imageview setImage:[UIImage imageNamed:@"image.png"]];
[imageview setUserInteractionEnabled:YES];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)];
[singleTap setNumberOfTapsRequired:1];
[imageview addGestureRecognizer:singleTap];
[self.view addSubview:imageview];
}
Run Code Online (Sandbox Code Playgroud)
然后像这样调用你的手势方法:
-(void)singleTapping:(UIGestureRecognizer *)recognizer {
NSLog(@"image clicked");
}
Run Code Online (Sandbox Code Playgroud)
迅速
override func viewDidLoad() {
super.viewDidLoad()
let imageView: UIImageView = UIImageView(frame: CGRect(x: 100.0, y: 100.0, width: 100.0, height: 100.0))
imageView.image = UIImage(named: "image.png")
imageView.isUserInteractionEnabled = true
let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.singleTapping(recognizer:)))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
self.view.addSubview(imageView)
}
@objc func singleTapping(recognizer: UIGestureRecognizer) {
print("image clicked")
}
Run Code Online (Sandbox Code Playgroud)
Dru*_*erB 10
UIImageView不是控件,您不能为其添加控件事件的目标.你有几个选择:
将一种无形的UIButton在UIImageView和你的目标补充.您可以将按钮的样式设置为自定义,将其文本(和图像)设置为空,以使其不可见.
只使用一个UIButton.您可以为其添加背景图像.
添加UITapGestureRecognizer到图像视图并实现它的触摸处理程序方法.
子类UIImageView并覆盖触摸处理方法,以执行您需要执行的操作.
小智 8
您所要做的就是将Tap Gesture Recognizer拖到imageView(在Storyboard中)并在Attributes Inspector上启用User Interaction.如果要将图像用作指向另一个视图控制器的链接,只需将视图控制器底部的Tap Gesture Recognizer图标控制拖动到目标视图控制器.