我有以下一段代碼。這是一個菜單(名爲CarbonKit)的第三方庫。當我嘗試選擇特定片段(標籤)並添加手勢識別器時,它不起作用。任何想法我做錯了什麼?UITapGestureRecognizer不適用於特定的[UIView]數組
要清楚,我在handleTap中放置了一個斷點,它甚至不會輸入函數。
override func viewDidLoad() {
super.viewDidLoad()
self.view.userInteractionEnabled = true
let tgr : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(OverviewFolder.handleTap(_:)))
// segment 2 (categories)
carbonTabSwipeNavigation.carbonSegmentedControl?.segments![2].userInteractionEnabled = true
carbonTabSwipeNavigation.carbonSegmentedControl?.segments![2].addGestureRecognizer(tgr)
}
// tap
func handleTap(gestureRecognizer : UITapGestureRecognizer){
let test = carbonTabSwipeNavigation.currentTabIndex
if test == 2 {
print("second item tapped")
}
}
您是否檢查過'carbonSegmentedControl'是否不添加手勢?你也使用Swift 2或Swift 3嗎? – alexburtnik
@alexburtnik我正在使用Swift 2.3,並且carbonSegmentedControl不是nill,它返回可選(>) –
SoundShock
幾個想法。首先,CarbonTabSwipeNavigation是什麼?接下來,假設carbonSegmentedControl是您的UISegmentedControl,您爲什麼要嘗試將點按手勢添加到特定按鈕?它已經**有**內置的水龍頭。難道你不能簡單地針對UISegmentedControl.valueChanged()進行編碼並檢查selectedSegmentIndex嗎? – dfd