2017-08-29 190 views
0

我已經添加tapGesture到我的UIImageView rDot。問題是,當我點擊rDot時,什麼也沒有發生,並且它不打印「它工作」。 rDot與其他元素處於堆棧視圖,我不知道這是否與它無關。 rDot和redDot是兩個獨立的UIImageViews。tapGesture沒有被執行

override func viewDidLoad() { 
    super.viewDidLoad() 

     rDot.isUserInteractionEnabled = true 
     let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:))) 
     rDot.addGestureRecognizer(tapGestureRecognizer)       
} 

func rdotimageTapped(tapGestureRecognizer: UITapGestureRecognizer) { 
     whiteD?.isHidden = true 
     redDot?.isHidden = false 
     print("It worked") 
    } 
+1

試試這個加'gesture'後,你可能工作:通過'行動:(rDot toFront)' – Santosh

+0

嘗試添加選擇:'view.bringSubview #selector(MyClass.rdotimageTapped(_ :))' –

+0

@桑托斯謝謝你打印出來,但現在圖像不會隱藏或不被隱藏。這兩個圖像都在不同的viewController上。 – Tabj

回答

1

您需要攜帶subView向前,因爲你已經把imageViewstackView。有時候,視圖層次結構不能識別分接subviews

override func viewDidLoad() { 
    super.viewDidLoad() 

    rDot.isUserInteractionEnabled = true 
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:))) 
    rDot.addGestureRecognizer(tapGestureRecognizer) 
    view.bringSubview(toFront: rDot)     
}