Selected state of text in a segmented control in Xcode
I am working on my first application using Swift and Xcode.
In one of my views, I have a segmented control which has emoticons as the text being displayed. However, I have a problem where whenever one of the emoticons is selected, it becomes blacked out as shown in the image below:
I think the problem has to do with the text attributes of the selected state of my segmented control, and my attempt at a fix was setting the text attributes of the selected state to be the same as the text attributes of the normal state:
override func viewDidAppear(animated: Bool) {
moodSelector.setTitleTextAttributes(moodSelector.titleTextAttributesForState(.Normal), forState: .Selected)
}
However, this does not seem to work. Any help would be appreciated?
You can set NSAttributedStringKey.foregroundColor
(formerly known as NSForegroundColorAttributeName
) to any color and it prevents that behavior. For example, in Swift 3 or 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)
}
Yielding:
链接地址: http://www.djcxy.com/p/89524.html上一篇: 如何为各种代码块创建通用超时对象?
下一篇: Xcode中分段控件中文本的选定状态