在Swift中检测UIImageView Touch

时间:2015-06-22 22:29:15

标签: ios swift uiimageview

触摸UIImageView时,您如何检测并执行操作? 这是我到目前为止的代码:

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    var touch: UITouch = UITouch()
    if touch.view == profileImage {
        println("image touched")
    }
}

3 个答案:

答案 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));