下面的代碼在iOS 10及更低版本中工作正常。我最近安裝了Xcode 9.0 beta 5並在iPad Air上安裝了iOS 11 beta 7進行測試。現在,remedyMenuTapped方法不會被執行。navigationItem.titleView上的UITapGestureRecognizer無法在iOS上工作11
self.remedyMenuView = Bundle.main.loadNibNamed("RemedyMenu", owner: self, options: nil)![0] as? RemedyMenu
self.remedyMenuView?.isHidden = true
self.navigationItem.titleView = remedyMenuView;
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(RemedyDetailVC.remedyMenuTapped(_:)))
self.remedyMenuView?.addGestureRecognizer(tapGesture)
這可能需要tapGesture.delegate = self?或預防手勢衝突,此委託方法擴展視圖控制器:UIGestureRecognizerDelegate { FUNC gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer,shouldRecognizeSimultaneouslyWith otherGestureRecognizer:UIGestureRecognizer) - >布爾{ 還真 } },也許.isUserInteractionEnabled自定義視圖 – Lito
如果隱藏視圖,手勢將不起作用,將「隱藏」設置爲「假」,嘗試一下。 – AshokPolu
@AshokKumarReddyPolu我在viewDidLoad上做了viewDidAppear self.remedyMenuView?.isHidden = false在xib中的RemedyMenu中啓用了用戶交互。 – Homam