触摸UIImageView
时,您如何检测并执行操作?
这是我到目前为止的代码:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
var touch: UITouch = UITouch()
if touch.view == profileImage {
println("image touched")
}
}
答案 0 :(得分:19)
您可以通过向UIImageView
添加UITapGestureRecognizer来检测UIImageView
上的触摸。
请务必注意,默认情况下,isUserInteractionEnabled
的{{1}}属性设置为false,因此您必须在故事板或编程中明确设置它。
override func viewDidLoad() {
super.viewDidLoad()
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped)))
}
@objc private func imageTapped(_ recognizer: UITapGestureRecognizer) {
print("image tapped")
}
答案 1 :(得分:18)
您可以使用Interface Builder或代码(根据需要)在UITapGestureRecognizer
内放置UIImageView
,我更喜欢第一个。然后,您可以放置@IBAction
并处理UIImageView
内的点按,不要忘记在Interface Builder或代码中将UserInteractionEnabled
设置为true
。 / p>
@IBAction func imageTapped(sender: AnyObject) {
println("Image Tapped.")
}
我希望这对你有所帮助。
答案 2 :(得分:4)
Swift 3
onNavigationItemSelected(mNavigationView.getMenu().getItem(0));