Artikel Tagged 'Tutorials'


iPhone FontsBook: Quellcode, um die System-Schriftart angezeigt werden

Abgerundet wird der Artikel . Gewusst wie: Benutzerdefinierte Schriftarten auf dem iPhone OS 3 2 schlagen wir die Quellen FontsBook , eine einfache iPhone-Anwendung, die eine Tabelle zeigt alle System-Fonts, von der Familie gruppiert.

FontsBookFontsBookFontsBook

Mehr ...

Wie man Breite und Länge in Objective-C

Die MapKit Framework bietet viele nützliche Funktionen, mit Ausnahme der Rückkehr der Breite und Länge von einer Adresse. In JavaScript, zum Beispiel, können Sie den Service von Google Geocoding zur Verfügung gestellt und diskutiert in Google Maps: Wie man Breite und Länge von einer Adresse zu bekommen . Auf dem Apple iPhone oder iPad, können Sie jedoch das Hindernis durch Verwendung eines anderen Google-Services zu überwinden. Insbesondere können Sie direkt rufen Sie die URL:

1
http://maps.google.com/maps/geo?q = [Adresse] & output = csv

Wo ist [indirizzo] , um den String mit der Adresse, die Sie umwandeln möchten Koordinaten eingeben. Der Ausgang zurückgekehrt ist vom Typ:

1
200,8,41.9128300,12.2241172

). Der erste Wert, 200 , zeigt an, dass alles gut gegangen ist ( 200 OK ). Die zweite, 8 , ist das Google-Parameter Genauigkeit (1-10). Die letzten beiden Werte sind, endlich, Breiten-und Längengrad. Jetzt sehen wir, ein Prototyp für ein Verfahren in unseren Anwendungen einbezogen werden können:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CLLocationCoordinate2D ) getLocationFromAddress : ( NSString * ) address { - (CLLocationCoordinate2D) getLocationFromAddress: ( NSString *) Adresse {
urlString = [ NSString stringWithFormat : @ "http://maps.google.com/maps/geo?q=%@&output=csv" , NSString * urlString = [ NSString stringWithFormat: @ "% @ http://maps.google.com/maps/geo?q = & output = csv"
NSUTF8StringEncoding ] ] ; [Adresse stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

listItems = [ locationString componentsSeparatedByString : @ "," ] ; NSArray * ListItems = [locationString componentsSeparatedByString: @ ""];

/ / Int zoom = 0;
0.0 ; doppelte Breite = 0,0;
0.0 ; doppelte Länge = 0,0;

listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([ListItems count]> = 4 && [[ListItems objectAtIndex: 0] isEqualToString: @ "200"]) {
/ / Zoom = [[ListItems objectAtIndex: 1] intValue];
listItems objectAtIndex : 2 ] doubleValue ] ; Breitengrad = [[ListItems objectAtIndex: 2] doubleValue];
listItems objectAtIndex : 3 ] doubleValue ] ; Länge = [[ListItems objectAtIndex: 3] doubleValue];
{ Else {}
/ / Fehler
}
CLLocationCoordinate2D Standort;
location.latitude = Breite;
location.longitude = Länge;

Standort zurückkehren;
}

Notes of Interest

, alla stregua della funzione explode ( ) del PHP per intenderci. Die Zeichenfolge in zurückgekehrt locationString wird "gesplittet" nach der Methode componentsSeparatedByString , wie die Funktion explode ( ) in PHP zum Beispiel. Im Beispiel habe ich vorgeschlagen, trat ich - aber kommentiert - den Code, um auch die Google-Parameter Genauigkeit, Präzision oder Skalierungsfaktor, mit bezeichnet abrufen zoom .

Quelle als

Der Vollständigkeit halber, habe ich eine gemacht kleine Beispiel-Anwendung , mit der Sie die Methode oben vorgeschlagenen versuchen können, geben Sie eine beliebige Adresse und das iPhone wird auf der Karte anzuzeigen.


Quellcode

Ich danke dem Team devapp für die Inspiration dieses Artikels.

Mehr ...

Adobe Flash CS4: Erstellen eines Ajax Loader oder Activity Indicator

Erstellen Sie eine Ajax-Loader (oder LED-Aktivitätsanzeige für diejenigen daran gewöhnt, mit dem Apple iPhone) für das Web ist nicht eine schwierige Sache: Es gibt Dienste, die animierte GIF-Bilder erzeugen aller Arten. Allerdings hat das GIF-Format den großen Nachteil, nicht transparent unterstützen, wie es sollte. Transparenz im GIF-Format jetzt, handelt sich nur um ein Bit Flugzeug mit der Folge, dass, wenn wir nicht über eine einheitliche Hintergrundfarbe, Bildrändern deutlich körnig und fragmentiert sind.

Mehr ...

Rufen Sie die Bilder in einem Beitrag geladen

Beim Schreiben eines Beitrags in WordPress kann man Bilder, um gleichzeitig das Schreiben der Artikel hochladen. Diese Bilder, die Teil der Mediathek sind, werden mit diesem speziellen Beitrag assoziiert. Die Besonderheit dieses Verhalten liegt in der Möglichkeit der Extraktion dieser Bilder, egal ob sie körperlich dazu in der Post gelegt.

Mehr ...

Photoshop Tutorial: Effekte mit Schatten

In diesem Tutorial zeige ich Ihnen einige spezielle Effekte, die auf eine einfache rechteckige Objekt durch das Spiel mit Schatten angewendet werden können. Natürlich meine ich nicht, Schatten-Effekt auf eine Ebene angewendet, sondern echte Schatten manuell erstellt. Zuerst zeichnen Sie ein Rechteck auf einer Ebene wie folgt aus:

Rettangolo

Mehr ...

iPhone SecondApp: Guess the Zahl - Teil 2

Wie bereits erwähnt FirstApp iPhone: Guess the Zahl - Teil 1 sehen wir, wie Sie eine Anwendung für das Apple iPhone ohne Interface Builder zu machen! In der Tat werden wir beseitigen physischen Dateien von Interface Builder Wizard erstellt Xcode. Am Ende von diesem Post, dann haben wir eine Anwendung in jeder Hinsicht identisch, die denen im ersten Teil gebaut, mit dem Unterschied, dass wir alle unsere visuelle Komponenten, einschließlich der im Hauptfenster für vollständige Code zu erreichen.

Der Antrag bereits gestellt, wenn Sie gerade herunterladen möchten, finden Sie auf meiner Google-Code-Repository:

Ich möchte darauf hinweisen, das sofort als ZIP dieses Beispiels wiegt weniger als das letzte Mal! :)

Wir schaffen das Projekt

Wir beginnen, indem sie unser Projekt SecondApp (um es von FirstApp unterscheiden), obwohl diese Zeitfenster-basierte Anwendung zur Auswahl:

newproject

Nun wollen wir löschen alles, was mit Interface Builder. : eliminatelo anche dal file system, quindi selezionate Also Move to Trash . Beseitigen Sie die Datei MainWindow.xib , sich im Ordner Resources , entfernen Sie sie aus dem Dateisystem auch, und wählen Sie dann auch den Papierkorb verschieben. nella casella Main nib file base name : Wählen Sie dann die Datei SecondoApp-info.plist und löschen Sie den Verweis auf die MainWindow nib-Datei in der Main-box basierte Name:

deleteib

An dieser Stelle haben wir nicht mehr alle Fenster, zumindest über Interface Builder. , e modifichiamo la funzione main() in questo modo: Also öffnen wir die Datei main.m , in gelegen Other Sources , und ändern Sie die Funktion main() etwa so:

1
2
3
4
5
6
7
8
9
10
11
int argc, char * argv [ ] ) { int main (int argc, char * argv []) {

pool = [ [ NSAutoreleasePool alloc ] init ] ; NSAutoreleasePool Pool * = [[ NSAutoreleasePool alloc] init];

/ / Durch das Entfernen der Datei. XIB wir verloren Tracking
/ / Die App Delegierter und dann übergeben Sie es an "Hand"
UIApplicationMain ( argc, argv, nil , @ "SecondAppAppDelegate" ) ; int retVal = UIApplicationMain (argc, argv, nil, @ "SecondAppAppDelegate");

; [Pool release];
zurück retVal;
}

Öffnen Sie SecondAppAppDelegate.me dann schaffen wir das Hauptfenster über den Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void ) applicationDidFinishLaunching : ( UIApplication * ) application { - (Void) applicationDidFinishLaunching: (UIApplication *) Anwendung {

/ / Holen Sie sich die Bildschirmgröße (320, 480)
UIScreen mainScreen ] applicationFrame ] ; CGRect windowRect = [[UIScreen mainScreen] applicationFrame];
/ / Erzeugt ein Fenster - so wie wir bye bye, um Interface Builder tat
[ [ UIWindow alloc ] initWithFrame : windowRect ] ; UIWindow MainWindow * = [[UIWindow alloc] initWithFrame: windowRect];
/ / Stellen Sie den Hintergrund des Fensters, um gelbe, zu differenzieren
/ / Die ältere Anmeldung FirstApp
[ UIColor yellowColor ] ] ; [MainWindow setBackgroundColor: [UIColor yellowColor]];

mainWindow ] ; [Self setWindow: MainWindow];
; [Window makeKeyAndVisible];

; [MainWindow release];
}

Sie können bereits testen Sie die Anwendung, wenn ein Fenster erscheint gelb Sie haben alles richtig gemacht!

, necessario solo se si usa Interface Builder. In der Datei SecondAppAppDelegate.h können wir beseitigen IBOutlet , nur benötigt, wenn Sie Interface Builder verwenden. Auch hier hinzufügen, dass unsere globale Variablen, das letzte Mal, dass wir in der Steuerung eingegeben hatte. Dann ändern Sie die Datei SecondAppAppDelegate.h :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Import <UIKit/UIKit.h>

NSObject <UIApplicationDelegate> { @ Interface SecondAppAppDelegate: NSObject {<UIApplicationDelegate>
UIWindow * Fenster;

UITextField * Zahl;
UIButton *-Taste;
int numeroACaso;
}

nonatomic, retain ) UIWindow * window; @ Property (atomare, behalten) UIWindow * Fenster;

void ) controllaNumero; - (Void) getNumber;

@ End

, in quanto non stiamo usando Interface Builder. Auch in diesem Fall haben wir die Definition der Methode vorbereitet controllaNumero , wie beim letzten Mal, aber wir haben den Hinweis beseitigt IBAction , da wir nicht mit Interface Builder.

Wir bilden die Schnittstelle Code

Es ist Zeit, um Code mit allen Komponenten unserer Schnittstelle zu schaffen. ed inseriamo il seguente codice: Wir kehren in der Datei SecondAppAppDelegate.m , posizioniamoci vor [mainWindow release] und setzen Sie den folgenden Code ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/ / Erstellen Sie auf die Titelleiste
[ [ UINavigationBar alloc ] initWithFrame : CGRectMake ( 0.0 , 0.0 , 320.0 , 44.0 ) ] ; UINavigationBar myNavigationBar * = [[UINavigationBar alloc] initWithFrame: CGRectMake (0,0, 0,0, 320,0, 44,0)];
myNavigationBar.barStyle = UIBarStyleDefault;
[ [ UINavigationItem alloc ] initWithTitle : @ "Indovina un numero" ] ; UINavigationItem navigationItem * = [[UINavigationItem alloc] initWithTitle: @ "Guess eine Anzahl"];
navigationItem animated : NO ] ; [MyNavigationBar pushNavigationItem: navigationItem animiert: NO];
myNavigationBar ] ; [Window addSubview: myNavigationBar];

/ / Erstellen Sie das Etikett
[ [ UILabel alloc ] initWithFrame : CGRectMake ( 10 , 50 , 300 , 80 ) ] ; UILabel myLabel * = [[UILabel alloc] initWithFrame: CGRectMake (10, 50, 300, 80)];
UIColor clearColor ] ; myLabel.backgroundColor = [UIColor clearColor];
; myLabel.numberOfLines = 2;
"iPhone ha pensato un numero da 1 a 10, prova ad indovinarlo?" ; myLabel.text = @ "Das iPhone hat eine Zahl von 1 bis 10 ausgebildet, versuchen zu erraten?"
myLabel ] ; [Window addSubview: myLabel];

/ / Erstellen der Texteingabe
UITextField alloc ] initWithFrame : CGRectMake ( 10 , 120 , 300 , 30 ) ] ; Zahl = [[UITextField alloc] initWithFrame: CGRectMake (10, 120, 300, 30)];
numero.borderStyle = UITextBorderStyleRoundedRect;
numero.textAlignment = UITextAlignmentCenter;
numero.keyboardType = UIKeyboardTypeNumberPad;
"Inserisci il numero" ; numero.placeholder = @ "Nummer eingeben";
numero ] ; [Window addSubview: Anzahl];

/ / Erstellen der Taste
UIButton buttonWithType : UIButtonTypeRoundedRect ] ; Taste = [UIButton buttonWithType: UIButtonTypeRoundedRect];
10 , 180 , 300 , 30 ) ; bottone.frame = CGRectMake (10, 180, 300, 30);
@ "Premi qui" forState : UIControlStateNormal ] ; [Button setTitle: @ "Hier klicken" forState: UIControlStateNormal];
self action : @selector ( controllaNumero ) forControlEvents : UIControlEventTouchUpInside ] ; [AddTarget Button: Selbst Aktion: @ selector (getNumber) forControlEvents: UIControlEventTouchUpInside];
bottone ] ; [Window addSubview: Taste];

; [MyLabel release];
; [NavigationItem release];
; [MyNavigationBar release];

della scorsa volta, subito dopo il [mainWindow release]; inseriamo: Da das ' applicationDidFinishLaunching entspricht viewDidLoad wie beim letzten Mal, direkt nach dem [mainWindow release]; Einsatz:

1
+ arc4random ( ) % 10 ; numeroACaso = 1 + arc4random ()% 10;

Jetzt können wir tun ist, implementieren die Methode controllaNumero , die gleich wird (abgesehen von dem Prototyp) zum letzten Mal benutzt ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void ) controllaNumero { - (Void) {getNumber
"Premuto bottone di controlla numero" ) ; NSLog (@ "gedrückten Taste Steuerung Zahl");
[ numero.text integerValue ] ; numeroInserito int = [numero.text integerWert];
message; NSString * message;
"Il numero inserito è %d" , numeroInserito ) ; NSLog (@ "Die eingegebene Zahl ist% d", numeroInserito);
numeroInserito <numeroACaso ) { wenn (numeroInserito <numeroACaso) {
"Troppo basso..." ; message = @ "zu niedrig ...";
( numeroInserito> numeroACaso ) { } Else if (numeroInserito> numeroACaso) {
"Troppo alto..." ; @ message = "Too high ...";
( numeroInserito == numeroACaso ) { } Else if (numeroInserito numeroACaso ==) {
"Bravo hai indovinato" ; @ message = "Bravo Sie haben es erraten";
+ arc4random ( ) % 10 ; numeroACaso = 1 + arc4random ()% 10;
"Numero pensato %d" , numeroACaso ) ; NSLog (@ "% d dachte:" numeroACaso);
}
[ [ UIAlertView alloc ] UIAlertView alertMessaggio * = [[UIAlertView alloc]
"Responso" initWithTitle: @ "Response"
Nachricht: Nachrichten
Delegierter: nil
"OK" cancelButtonTitle: @ "OK"
] ; otherButtonTitles: nil];
; [AlertMessaggio Show];
; [AlertMessaggio release];
"" ; numero.text @ = "";
}

Wir sind fertig!

Schlussfolgerungen und Überlegungen

, proprio perchè volevo lasciarlo il più semplice e snello possibile e, anche, per dimostrare che non sono elementi sempre necessari. Dieses Beispiel macht nicht den direkten Einsatz eines UIView oder UIViewController , weil ich es so einfach und einheitlich wie möglich verlassen wollten und auch, um zu zeigen, dass die Elemente nicht immer notwendig sind. Allerdings kann das Einfügen von Objekten direkt im Fenster haben einen Sinn in diesem Beispiel und andere sporadische Kontexten. portano comunque benefici in tantissimi altri casi, ein alcuni sono praticamente indispensabili; come avremo modo di vedere in futuro. Die Verwendung von UIView und UIViewController noch Vorteile bringen in vielen anderen Fällen, undbei einige sind fast unverzichtbar, wie wir in Zukunft sehen werden.

Mehr ...

WordPress: Verwendung Shortcodes

Ab der Version 2.5 von WordPress (vorzugsweise 2.5.1) liefert die sogenannte Kurzwahlnummern , ein Verfahren, das die Erstellung von Rückruf oder besser als der Haken, wenn der Text unserer Post einen String mit Klammern formatiert wie gefunden wird ermöglicht [id_shortcode] . Vor 2.5 des WordPress Shortcodes wurden manuell (siehe umgesetzt freizugeben Napolux ), jetzt können Sie mit mehr Einfachheit und für verschiedene Zwecke zu nutzen.

Mehr ...

iPhone FirstApp: Guess the Zahl - Teil 1

Die erste Quelle, die ich in seine Hände gingen in Basic geschrieben wurde und bestand aus ein paar Zeilen Code, für mich aufschlussreich. Es war ein einfaches Spiel, das eine zufällige Zahl von 1 bis 10 erzeugt und durch Tastatureingabe, bewiesen, dass die eingegebene Zahl Maggione, weniger als oder gleich der Zufallszahl war. Trotz seiner rauen Einfachheit bleibt für mich eines der besten Beispiele - einfach, Spaß und praktisch - mit jemandem, der nichts von dem, was meinen wir eigentlich für die Programmierung "Computerprogramm" weiß zu erklären. Also habe ich es für Apple iPhone vorschlagen entschieden, wird vielleicht jemand helfen ...

Mehr ...

Photoshop-Tutorial: Text-Kette nach Belieben

Vielleicht nicht jeder weiß, über das Potenzial der Umgang mit Text in Photoshop, insbesondere die Tatsache, dass sie Text in einer Weise, sehr weit fortgeschritten zu manipulieren. Zum Beispiel, wenn wir zu "verbiegen" text wollten, würden wir versucht sein, den "Create Warped Text" verwenden, werden Altera testo , Es öffnet sich ein Fenster mit diesen Einstellungen:

Altera testo

Mehr ...

Actionscript 3.0 für Anfänger: Lektion # 5

Wer hat damit begonnen, Code mit Skriptsprachen wie JavaScript oder ActionScript selbst zu entwickeln, vielleicht nicht wissen, all das Konzept der Datentyp. Bei einigen High-Level-Sprachen, in der Tat, pflegte er - bestenfalls - zu Variablen ohne Angabe von bestimmten Datentyp deklarieren, nicht gerechnet jene Sprachen, die erfordern keine Anweisung (z. B. PHP - nicht im strengen Version 5 ).

Mehr ...



Stop SOPA