我在这里显示代码的图像是代码
UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];
我想以编程方式处理preArrowImage上的触摸事件。
Objective-C的
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[preArrowImage setUserInteractionEnabled:YES];
[preArrowImage addGestureRecognizer:singleTap];
-(void)tapDetected{
NSLog(@"single Tap on imageview");
}
SWIFT 4.2
let preArrowImage : UIImageView // also give it frame
let singleTap = UITapGestureRecognizer(target: self, action: #selector(tapDetected))
preArrowImage.isUserInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)
//Action
@objc func tapDetected() {
print("Imageview Clicked")
}
只需在图像上添加UITapGesture
,但请记住启用UserInteraction。
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(singleTapGestureCaptured:)];
[preArrowImage addGestureRecognizer:singleTap];
[preArrowImage setMultipleTouchEnabled:YES];
[preArrowImage setUserInteractionEnabled:YES];
现在在斯威夫特!
let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapDetected"))
singleTap.numberOfTapsRequired = 1
preArrowImage.userInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)
//Action
func tapDetected() {
println("Single Tap on imageview")
}
斯威夫特3
在UIImageView上启用UserInterAction
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
if let touch = touches.first {
if touch.view == self.imgVwPostPreview { //image View property
//Do your actions
//self.delegate?.didClickOnCellImageView(indexPath: self.cellIndexPath!)
}
}
}
在视图控制器中使用故事板与视图。
选择其中一个手势识别器后,将其拖动到控制器。 现在它将显示在“文档大纲”和视图控制器xib的标题中。
将手势拖动到UILabel
在头文件中创建IBAction方法 现在将它从处理程序拖动到xib中的手势图标
如果你的UIImageView是一个从Storyboard或Nib获得的IBOutlet,你可以在图像视图中添加一个UIGestureRecognizer,启用用户交互并将IBAction连接到手势识别器。
有关更多信息,请查看我对此问题的回答:How to you make a UIImageView on the storyboard clickable (swift)
这是另一个选择:作弊。
我的意思是,横向思考。
设置你的UIImage你想要的,裁剪的,方面适合的等等。
用UIView叠加它(等尺寸,位置等)
将背景设置为clearcolour,将类设置为UIControl。
将事件内部的触摸指向处理程序,瞧。