Ich habe eine UIButton
in meiner TVos
App, in der ich die backgroundColor
und auch die Schriftart des titleLabel ändern möchte.
Der Text, die Schriftart und backgroundColor
sollten identisch sein, wenn die Schaltfläche fokussiert wird, es sollte jedoch angezeigt werden, dass es sich um eine focused view
handelt.
Ich habe diese drei Codezeilen in meinem ViewDidLoad
:
orderButton.titleLabel?.font = UIFont(name: "RobotoCondensed-Regular", size: 40)
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: [.Focused, .Normal])
orderButton.setTitleColor(UIColor.whiteColor(), forState: [.Focused, .Normal])
PROBLEM:
Wenn meine Ansicht geladen ist, hat meine Schaltfläche immer noch die Standardfarbe Grau. Wenn es fokussiert wird, erhält es die Farbe, die ich in meinem ViewDidLoad
festgelegt habe.
Hilfe dazu?
2 Antworten
Sie müssen beide Zustände wie folgt separat angeben
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: .Focused)
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: .Normal)
Wie Docs sagen
func setBackgroundImage(_ image: UIImage?,forState state: UIControlState)
Wir haben jeweils nur einen Status anzugeben
Sie können die didUpdateFocusInContext-Methode überschreiben, um dies zu erreichen. Angenommen, auf Ihrer Schaltfläche ist das Tag auf 1 gesetzt. Jetzt können Sie Folgendes tun:
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
if let nextFocusedView = context.nextFocusedView {
if button.tag == 1 {
// Change the font and background color here for Focused state
}
}
if let previousFocusView = context.previouslyFocusedView {
if button.tag == 1 {
// Change the font and background color here for Non-Focused state
}
}
Neue Fragen
ios
iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die zugehörigen Tags [Objective-C] und [Swift] für Probleme, die für diese Programmiersprachen spezifisch sind.