2016-01-05 24 views
7

Pracuję nad moją pierwszą aplikacją wykorzystującą Swift i Xcode.Wybrany stan tekstu w formancie segmentowanym w Xcode

W jednym z moich widoków mam podzieloną na segmenty kontrolę, która ma emotikony jako wyświetlany tekst. Mam jednak problem polegający na tym, gdy wybrano jeden z emotikonami, staje się zaciemnione, jak pokazano na obrazku poniżej:

segmentedControl

Myślę, że problem ma do czynienia z atrybutami tekstowymi wybranego państwa mojego segmentowej kontroli, a moja próba poprawki zachodziło atrybuty tekstowe wybranego stanie się być taka sama jak atrybutów tekstowych normalnego stanu:

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

jednak to nie wydają się działać. Czy pomoc byłaby doceniona?

Odpowiedz

4

Możesz ustawić NSAttributedStringKey.foregroundColor (wcześniej znany jako NSForegroundColorAttributeName) na dowolny kolor i to zapobiega. Na przykład, w Swift 3 lub 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) 
} 

Uzyskano

segmented control with emojis

+0

Dziękuję bardzo, że działa idealnie – user5739562