2015-11-02 175 views
1

我正在创建一个自定义UIView。我想知道如何在UIView上复制UIButton行为。自定义UIView addTarget?

我希望能够拨打addTarget就像UIButton

我知道,我可以继承UIControl,并呼吁

self.sendActionsForControlEvents(UIControlEvents.TouchUpInside); 

但我想做到这一点上UIView,因为我设计它放在一个XIB文件。

+0

添加UIControl与Backgound色彩清晰的自定义视图边界再加入目标是UIControl否则添加TapGesture到视图 – TamilKing

回答

2

可以使用UITapGestureRecognizer,将其添加在查看程序如下

self.userInteractionEnabled = true 
let gesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "viewTapped:") 
gesture.numberOfTapsRequired = 1 
self.addGestureRecognizer(gesture) 

和实施选择,您还可以添加手势使用厦门国际银行

2

有一个简单的方法来实现这一目标进行查看。

- >转到您的类的Interface Builder构建器>>选择要添加动作的视图>>然后将IDENTITY INSPECTOR中的自定义类从UIView更改为'UIControl'。

- >现在你可以添加任何IBAction方法到这个视图。

它的工作就像魅力。 快乐编码。 希望它可以帮助

2

这将是更好,如果我们谈论swift3或SWIFT 4

let gesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(targetViewDidTapped)) 
gesture.numberOfTapsRequired = 1 
targetView?.isUserInteractionEnabled = true 
targetView?.addGestureRecognizer(gesture)