2016-11-11 44 views
3

我正在爲tvOS編寫應用程序,並使用UISegmentedControl。我的問題是,當我滾動項目時,只要我停留在項目上一兩秒鐘,它就會發送它的操作方法。我想禁用此行爲,而只是在用戶點擊該行爲時才觸發該行爲。 有誰知道該怎麼做?防止UISegmentedControl自動發送操作方法

+0

既不文檔['UISegmentedContol'(https://developer.apple.com/reference/uikit/uisegmentedcontrol),也不[分段控件一般](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UISegmentedControl.html#//apple_ref/doc/uid/TP40012857-UISegmentedControl)提到類似這個。你有沒有不尋常的邏輯?涉及哪些版本? –

+0

沒什麼不尋常的。 PrimaryAction在IB中設置。剛剛在最新的tvOS上測試過。 – BobC

回答

0

我與我的tvOS應用同樣的問題,這個解決:

@IBOutlet weak var searchSegmentedControl: UISegmentedControl! 

override func viewDidLoad() { 
    let tap = UITapGestureRecognizer(target: self, action: #selector(didClickSegmentedSearchButton)) 
    tap.numberOfTapsRequired = 1 
    view.addGestureRecognizer(tap) 
} 

func didClickSegmentedSearchButton() { 
    switch searchSegmentedControl.selectedSegmentIndex { 
    case 0: 
     // Restaurant 
    case 1: 
     // Hotel 
    case 2: 
     // Attraction 
    case 3: 
     // Shopping 
    default: 
     // Unknown 
    } 
}