2016-01-05 1 views
7

Я работаю над своим первым приложением, используя Swift и Xcode.Выбранное состояние текста в сегментированном управлении в Xcode

В одном из моих представлений у меня есть сегментированный элемент управления, который содержит смайлики в качестве отображаемого текста. Тем не менее, у меня есть проблема, где каждый раз, когда выбран один из смайликов, она становится затемненной, как показаны на рисунке ниже:

segmentedControl

Я думаю, что проблема связана с текстовыми атрибутами выбранного состояния мое сегментированного управления, и мою попытки починки садились текстовыми атрибутами выбранного состояния, чтобы быть таким же, как текстовые атрибуты нормального состояния:

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

Однако, это не похоже на работу. Любая помощь будет оценена по достоинству?

ответ

4

Вы можете установить NSAttributedStringKey.foregroundColor (ранее известный как NSForegroundColorAttributeName) на любой цвет и предотвращает такое поведение. Например, в Swift 3 или 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) 
} 

Уступая:

segmented control with emojis

+0

Спасибо так много, что прекрасно работает – user5739562