2016-08-02 131 views
0

我有一個UIImageView加載了幾張不同尺寸的不同圖片,並用黑色背景填充了UIImageView的其餘區域。我試圖找到一種方法,在黑色背景上的任何地方點擊,但不在圖像上,將隱藏UIImageView。無論如何要做到這一點?在UIImageView上檢測到觸摸背景

編輯:

這是屏幕的佈局。我試圖做起來很攻隨時隨地在黑色區域會隱藏大圖像,並只顯示在後臺剩下的事情看起來像這樣:

大圖像和黑色的背景都在一個UIImageView中。我只需要一種方法來檢測黑色區域中的水龍頭,然後我可以設置imageview.hidden = true

+0

請提供您的**代碼** –

+0

您需要在您的問題中提供更多詳細信息,否則它可能會因爲信息太廣泛和/或信息不足而無法回答。 – AlBlue

回答

0

這是一類UIViewController將實現功能。它看起來像你正在使用UICollectionView,但它應該仍然工作。

import UIKit 

class ViewController: UIViewController { 

    let imageView = UIImageView() 
    var gesture = UITapGestureRecognizer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     gesture = UITapGestureRecognizer(target: imageView, action: #selector(ViewController.gestureActivated)) 
     gesture.numberOfTapsRequired = 1 
     gesture.numberOfTouchesRequired = 1 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func gestureActivated() { 
     let tap = gesture.location(in: imageView) 

     if let image = imageView.image?.accessibilityFrame { 
      if !image.contains(tap) { 
       imageView.isHidden = true 
      } 
     } 
    } 

} 

viewDidLoad我給圖像觀看UIGestureRecognizer當一個手指被用於一次點擊它時被激活。水龍頭製成後,調用gestureActivated函數。

然後用圖像視圖中的水龍頭位置創建常量。

獲得水龍頭的位置後,我們檢查它是否在圖像上。如果不是,那麼我們隱藏圖像視圖。

+0

我的imageview包含黑色背景以及圖像本身,我希望手勢只能在點擊黑色背景時識別,但不能在點擊圖像時識別 – Mark

+0

您是否確認在選擇圖像時操作會被觸發? –

+0

@Mark,我更新了我的答案。 –