Ein weiteres nettes Feature ist genstrings. Mit diesem Kommando lassen sich die Stringfiles automatisch erzeugen, indem alle .m Files nach LocalizedStrings durchsucht werden.
genstrings -o de.lproj Classes/*.m
Füllt die de file mit Inhalten (vorsicht, es wird immer komplett überschrieben!)
Der Entwickler der Facebook iPhone App Joe Hewitt hat im Zuge der Erstellung der Applikation daran gemacht, die verwendeten Elemente in eine Library zu vereinen.
Das ganze nennt sich Three20 in Anlehnung an die 320 Pixel beim iPhone.
[…]
The name of the new project is Three20, after the 320-pixel-wide screen of the iPhone. The code is all hosted on github for your cloning pleasure. There is an excellent sample app called TTCatalog which lets you play with all of the various UI components. Documentation? Well… there are instructions for how to add Three20 to your project, but I am still working on comprehensive documentation for each of the classes. For now, the sample app and the code itself are your documentation.
[…]
Beschrieben werden alle nutzbaren Klassen mit Beispielen und einer sehr aktiven Google Group
Wer mit einer UITableView arbeitet, wird auch UITableViewCell nutzen. Bei einer TableViewCell kann in der default Zelle ein Bild (UIImage) gesetzt werden.
Auf den ersten Blick nutzt man einfach
UITableView ist ein mächtiges Werkzeug zur Darstellung und Verarbeitung von Informationen. Meistens ist die Anwendung, eine View, ein UITableView in dem eine Reihe von Informationen angezeigt werden. Diese Informationen haben dann jeweils unterschiedliche Actions.
Doch nicht immer trifft dieser UseCase ein, bzw. eine Anpassung der UITableViews ist notwendig. Daher wird hier nach und nach eine Sammlung an Tweaks, Tipps und Kniffen rund um UITableView gesammelt werden.
Hier ein paar Tweaks zum Thema UITableView:
Hintergrund Farbe der ganzen TableView ändern
myTableView.backgroundColor = [UIColor redColor];
Mehrere UITableViews in einer View
Wenn in einer UIView mehrere UITableViews geführt werden, so ist es möglicherweise notwendig, jeder TableView eine unterschiedliche ANzahl an Rows zu geben, dies kann folgendermaßen umgesetzt werden:
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == self.myTableView1) {
return 2;
} else if (tableView == self.myTableView2) {
return 3;
} else {
// wird nie erreicht
}
}
Performancetuning
Hier findet man ne coole Möglichkeit, die Höhe einer Zeile performant zu ändern:
Zum Thema neue .de Domains hier eine kleine Einführung und weiter unten eine Übersicht, wie große Hoster mit der Neuerung umgehen, sprich eine Hosterübersicht.
Am 15.10.2009 hat die denic nach einem Urteil folgendes bekannt gegeben:
[…]
DENIC eG schafft Einschränkungen bei der Second-Level-Domainregistrierung weitgehend ab
Chancengleichheit bei Einführungsphase durch erprobtes „First come – first served“-Prinzip
Mehrstufiges Registrierungsverfahren gewährleistet schnelle, sichere und transparente Domainregistrierung
Die DENIC eG wird die aktuellen Domainrichtlinien unter der Top-Level-Domain (TLD) .de dahingehend erweitern, dass künftig auch ein- und zweistellige Domains sowie reine Zifferndomains registriert werden können. Desweiteren werden Domains, die einem Kfz-Kennzeichen oder einer TLD entsprechen, für die Registrierung freigegeben. Das Registrierungsverfahren für die neuen Domains startet am 23. Oktober 2009 9:00 (MESZ). „Die jetzt geschaffenen Veränderungen reduzieren Restriktionen auf ein Minimum“, sagt DENIC- Vorstand Sabine Dolderer (CEO).
[…]
Das Vergabeverfahren der neuen Domains beschreibt die denic folgendermaßen:
[…]
„Da es sich um eine beschränkte Anzahl potenzieller neuer Domains handelt, und weil sich „First come – first served‘ als Verfahren bei der Domainregistrierung bewährt hat, entschieden wir uns bewusst wieder dafür“, begründet Sabine Dolderer die Vorgehensweise bei der Einführung. Im Interesse der Internet Community sollen die Registrierungsaufträge schnell, sicher und vor allem unter Wahrung größtmöglicher Chancengleichheit und Transparenz umgesetzt werden. Die Einführungsphase der neuen Domains beginnt am 23. Oktober 2009 9:00 (MESZ). Der Übergang in den normalen Regelbetrieb erfolgt voraussichtlich ab 26. Oktober 2009.
[…]
Neuerungen:
Für Domains unter der TLD .de gelten ab dem 23. Oktober 2009 folgende Regeln:
Auch ein- und zweistellige sowie reine Zifferndomains können jetzt registriert werden.
Domains, die einem Kfz-Kennzeichen oder einer TLD entsprechen, sind frei gegeben.
Erlaubte Zeichen für Domains sind die Ziffern 0 bis 9, der Bindestrich, die lateinischen Buchstaben a bis z und die weiteren Buchstaben aus der aktuell gültigen Anlage zu den Domainrichtlinien.
Eine Domain darf mit einem Bindestrich weder beginnen, noch enden. Auch Bindestriche an dritter und vierter Stelle der Domain sind nicht zulässig.
Die Mindestlänge einer Domain liegt bei einem Zeichen.
Die Maximallänge einer Domain beträgt 63 Zeichen (bezogen auf den Domain-ACE) – jeweils exklusive .de.
Die denic Mitglieder gehen sehr unterschiedlich mit den Neuerungen um.
1und1 bietet die Möglichkeit der Vorregistrierung, ob diese aber auch für die neuen .de Domains gilt, ist fraglich.
All-inkl.com wird laut E-Mail-Support nicht an der Vorregistrierung teilnehmen.
nepukis.de verlangt für 40 Plätze 24,99 Euro, mehr Plätze werden nicht vergeben.
DenicDirekt nimmt aus Fairnes Gründen nicht an der ersten Phase der Registrierung teil.
Sedo kündigt per Newsletter an, jede der .de Domains zu versteigern, ob sedo diese nun über Partner selbst bekommt oder nach der ersten Phase versucht zu ersteigern ist dabei offen.
Alle 3 Anweisungen bewirken das gleiche Ergebniss, die Anwenudng wird schlafen gelegt. nachteil aller Optionen: die Anwendung wird wirklich unterbrochen, d.h. weitere Schritte sind nicht möglich.
Wenn man die Anweundung nicht komplett pausieren möchte, könnte der NSTimer ein gewünschtes Ergebniss liefern:
- (IBAction)tueEtwas:(id)sender
{
[indicator startAnimation:self];
// tue etwas
[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(stopTueEtwas:)
userInfo:nil
repeats:NO];
}
- (void)stopTueEtwas:(id)sender
{
[indicator stopAnimation:self];
[sender invalidate];
}
Das startet einen NSTimer, der nach 5 Sekunden eine Methode aufruft.