- Core Animation wird auf den Layer der UIView angewendet
- Durch die statischen Methoden [UIView beginAnimation…] wird das Aktualisieren der View eingefroren, sozusagen ein Wiederherstellungspunkt angelegt.
- UIViews können nur
CABasicAnimations
verwenden. - Durch die statische Methode
[UIView commit]
wird das Änderungslock aufgehoben, die in der Animationsdefinition festgelegten Werte kommen nun zur Anwendung. Es wird immer der Layer-Teil der View animiert. - Die
CAAnimation
als auch dieCAKeyFrameAnimation
wird direkt dem Layer zugeordnet. - Anstelle von Views können für grafische UIs auch Layern verwendet werden. Diese können aber kein Touch-Handling. Dafür wird ein HitTest ausgeführt.
Tag: 13. Januar 2012
Verwenden von NSUserDefaults
Ich bin aktuell dabei (ein Neujahrsprojekt) ein iOS Projekt zu vollenden. Es ist nur ein kleines Helferlein, das mir von einem beliebigen Datum die Kalenderwoche anzeigen soll.
Wenn das Programm nun beendet oder unterbrochen wird stellt sich mir die Frage, wie soll ich bestimmen, ob das Programm neu gestartet wurde oder nur aus dem Backgroundmode zurück kommt? Und der Anwender soll bestimmen können, wie das Verhalten für ihn am Besten anzuwenden ist. Hier kommt nun die Singleton-Klasse NSUserDefaults ins Spiel.
Das Verwenden der Klasse ist recht einfach. Was ich für mich klären wollte
- Wie kann ich Factory Settings definieren?
- Wie werden Factory Settings angewendet?
- Wann ist der optimale Zeitpunkt zum Speichern der geänderten Settings?
Laut Doku wird dafür registerDefaults
verwendet. Bedingung ist, es müssen Objekte in einem NSArray gespeichert werden. Wie geht das? Mit der Klasse NSNumber
. Mit dieser Klasse kann ich nun meine BOOL
Werte mit [NSNumber numberWithBool:YES]
als Einstellung speichern. Das Abfragen der Werte erfolgt dann wieder über das NSNumber-Objekt mit [[NSUserDefaults standardDefaults] boolForKey:@"keyName"
. Die Werte aus dem registerDefaults werden dann verwendet, wenn es keinen Benutzersetting gibt.