Wie verhindert man, dass UIButton beim Aktualisieren des Titels blinkt?
Wenn ich rufen Sie setTitle auf einem UIButton, der Taste blinkt in iOS 7. Ich habe versucht, myButton.hervorgehoben = NEIN, aber das hat nicht aufhören die Taste zu blinken.
[myButton setTitle:[[NSUserDefaults standardUserDefaults] stringForKey:@"elapsedLabelKey"] forState:UIControlStateNormal];
myButton.highlighted = NO;
Hier ist, wie Stelle ich den timer ein, aktualisiert den Titel:
- (void)actionTimer {
if (myTimer == nil) {
myTimer = [NSTimer scheduledTimerWithTimeInterval: 1.0
target: self
selector: @selector(showActivity)
userInfo: nil
repeats: YES];
}
}
Hier ist die Methode, die eigentlich updates der Titel:
- (void)showActivity {
NSString *sym = [[NSLocale currentLocale] objectForKey:NSLocaleCurrencySymbol];
if (pauseInterval == nil) {
//Update clock
seconds = [[NSDate date] timeIntervalSinceDate:startInterval] - breakTime;
//Update total earned
secRate = rate.value /60 /60;
total = secRate * seconds;
[totalLabel setTitle:[NSString stringWithFormat:@"%@%.4f",sym,total] forState:UIControlStateNormal];
days = seconds /(60 * 60 * 24);
seconds -= days * (60 * 60 * 24);
int hours = seconds /(60 * 60);
fhours = (float)seconds /(60.0 * 60.0);
seconds -= hours * (60 * 60);
int minutes = seconds /60;
seconds -= minutes * 60;
//Update the timer clock
[elapsed setTitle:[NSString stringWithFormat:@"%.2i:%.2i:%.2i:%.2i",days,hours,minutes,seconds] forState:UIControlStateNormal];
}
}
InformationsquelleAutor der Frage FierceMonkey | 2013-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das blinken wird nicht durch den timer per se. Der UIButton Methode setTitle:forState blinkendes. Ein einfaches umgehen, verwenden Sie einen UIButton ohne Titel und überlagern, ein UILabel. Wenn Sie ändern die UILabel text, es wird kein flash.
InformationsquelleAutor der Antwort The Tank
Legen Sie den Typ Schaltfläche aus, um UIButtonTypeCustom und es wird aufhören zu blinken
InformationsquelleAutor der Antwort Quanlong
*Bitte beachten *
wenn "buttonType" _button ist "UIButtonTypeSystem"der code unten ist ungültig:
wenn "buttonType" _button ist "UIButtonTypeCustom"obige code ist gültig.
InformationsquelleAutor der Antwort shede333
Einen besseren Ansatz als
[UIView setAnimationsEnabled:NO]
die möglicherweise Auswirkungen auf andere Animationen zu deaktivieren Sie die spezifischen Titel animation.Objective-C:
Swift 3:
InformationsquelleAutor der Antwort Cœur
Siehe die Antworten von Wie zu stoppen unerwünschte UIButton animation auf den Titel zu ändern? :
InformationsquelleAutor der Antwort Marius
Standard "setTitle" Verhalten ist definitiv hasserfüllt!
Meine Lösung ist:
Auch, storyboard, unter dem button die Eigenschaft, die ich deaktivieren:
Und prüfen:
Getestet und arbeiten auf iOS 8 zu.
Update - Swift
Ich schlage vor, Sie erstellen Ihre benutzerdefinierte Schaltfläche und überschreiben setTitle Methode.
InformationsquelleAutor der Antwort Luca Davanzo
Können Sie einfach machen eine andere Funktion für UIButton für einfache zukünftige Verwendung.
Dass ist es!
Und nur den Titel als würden Sie vor dem ersetzen
setTitle
mitsetTitleWithoutAnimation
InformationsquelleAutor der Antwort Daniel Tseng
Ich bin neu in der coding-und Stackoverflow, daher haben Sie nicht genug Ruf, um Kommentare direkt zu erweitern https://stackoverflow.com/users/4673064/daniel-tseng ausgezeichnete Antwort. Also ich habe das schreiben meiner eigenen Antwort, und es ist diese:
Funktioniert Super, AUßER:
Wenn alle meine Anrufe später im code zu "setTitleWithoutAnimation" nicht einen Absender anzugeben, dann bekomme ich diese seltsamen Nachrichten in Bezug auf CoreMedia oder CoreData, z.B. "Fehler beim Erben CoreMedia Berechtigungen von 2526: (null)"
Dies ist wahrscheinlich ziemlich einfach zu codieren und iOS, aber für mich als einen neuen coder, es hat mich auf ein Kaninchen Weg für eine Weile, wie in: Heute-Erweiterung konnte nicht Erben Berechtigungen von CoreMediawo die Leute interessant, die Antworten aber, dass NICHT bis zu der Wurzel meines Problems.
So fand ich schließlich, dass ich hatte gehen durch und gebe meine parameter-weniger Funktionen-Parameter, d.h., ich musste einen Absender anzugeben. Die Absender werden könnte, UIButton, oder AnyObject. Alle diejenigen, die gearbeitet, aber letztlich gibt es offensichtlich einen Konflikt zwischen dem hinzufügen einer Schaltfläche Erweiterung mit "selbst" und nicht speziell sagen später, dass Sie eine Taste verwenden.
Wieder, wahrscheinlich einfach, aber neu für mich, so dass ich dachte, es wäre es Wert.
InformationsquelleAutor der Antwort Ian Hanson