2016-11-11 1 views
3

Ich programmiere eine App für tvOS und verwende ein UISegmentedControl. Mein Problem ist, dass ich während des Scrollens durch Objekte seine Aktionsmethode aussende, sobald ich für ein oder zwei Sekunden auf einem Objekt bleibe. Ich möchte dieses Verhalten deaktivieren und stattdessen die Aktion nur auslösen, wenn der Benutzer darauf klickt. Weiß jemand wie es geht?Verhindern, dass UISegmentedControl die Aktionsmethode automatisch sendet

+0

Weder docs auf [ 'UISegmentedContol'] (https://developer.apple.com/reference/uikit/uisegmentedcontrol) noch Einsen bei [Segmentierte Steuerelemente allgemein] (https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UISegmentedControl.html#//apple_ref/doc/uid/TP40012857-UISegmentedControl) erwähnen irgendetwas wie Dies. Hast du eine ungewöhnliche Logik? Welche Versionen sind beteiligt? –

+0

Nichts Ungewöhnliches. Die PrimaryAction wird in IB festgelegt. Gerade getestet in der neuesten TVOS. – BobC

Antwort

0

ich das gleiche Problem mit meiner tvOS App hatte und mit dieser gelöst:

@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 
    } 
} 
Verwandte Themen