2016-01-05 13 views
7

Sto lavorando alla mia prima applicazione utilizzando Swift e Xcode.Stato selezionato del testo in un controllo segmentato in Xcode

In una delle mie visualizzazioni, dispongo di un controllo segmentato con emoticon come testo da visualizzare. Tuttavia, ho un problema in cui ogni volta che viene selezionata una delle emoticon, diventa oscurato come mostrato nella figura:

segmentedControl

Credo il problema ha a che fare con gli attributi di testo lo stato selezionato dal mio controllo segmentato, e il mio tentativo di correzione è stata l'impostazione degli attributi di testo dello stato selezionato per essere lo stesso che gli attributi del testo dello stato normale:

override func viewDidAppear(animated: Bool) { 
    moodSelector.setTitleTextAttributes(moodSelector.titleTextAttributesForState(.Normal), forState: .Selected) 
} 

Tuttavia, questo non sembra funzionare. Qualsiasi aiuto sarebbe apprezzato?

risposta

4

È possibile impostare NSAttributedStringKey.foregroundColor (precedentemente noto come NSForegroundColorAttributeName) su qualsiasi colore e impedisce tale comportamento. Per esempio, in Swift 3 o 4:

override func viewDidLoad() { 
    super.viewDidLoad()   // whether `viewDidLoad` or `viewDidAppear`, make sure to call the appropriate `super` method, too 

    let attributes = [NSAttributedStringKey.foregroundColor : UIColor.white] 
    moodSelector.setTitleTextAttributes(attributes, for: .selected) 
} 

Cedendo:

segmented control with emojis

+0

Grazie mille, che funziona perfettamente – user5739562

Problemi correlati