Articles taggés avec 'des tutoriels


FontsBook iPhone: le code source pour afficher les polices système

Complétant l'article How To: Les polices personnalisées sur l'iPhone OS 3. 2 Je propose la FontsBook sources , une application iPhone simple qui montre une table de toutes les polices du système, regroupés par famille.

FontsBookFontsBookFontsBook

Suite ...

Comment obtenir Latitude et Longitude en Objective-C

Le cadre fournit MapKit nombreuses fonctions utiles, sauf le retour de longitude et latitude d'une adresse. En JavaScript, par exemple, vous pouvez utiliser le service fourni par Google de géocodage et discutés dans Google Maps: Comment obtenir Latitude et Longitude partir d'une adresse . Apple iPhone ou iPad, cependant, vous pouvez surmonter cet obstacle en utilisant un des différents services Google. Plus précisément, vous pouvez appeler directement à l'url:

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

Où est [indirizzo] pour entrer dans la chaîne avec l'adresse que vous voulez transformer les coordonnées. La sortie retournée est de type:

1
200,8,41.9128300,12.2241172

). La première valeur, 200 , indique que tout s'est bien passé ( 200 OK ). La seconde, 8 , Google est le paramètre de précision (1-10). Les deux dernières valeurs sont, enfin, la latitude et la longitude. Maintenant, nous voyons un prototype d'une méthode peut être inclus dans nos applications:

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 ] ] ; [StringByAddingPercentEscapesUsingEncoding adresse: NSUTF8StringEncoding]];

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

/ / Int zoom = 0;
0.0 ; Latitude double = 0,0;
0.0 ; Longitude double = 0,0;

listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([ListItems count]> = 4 & & [[ListItems objectAtIndex: 0] isEqualToString: @ "200"]) {
/ / Zoom = [[objectAtIndex ListItems: 1] intValue];
listItems objectAtIndex : 2 ] doubleValue ] ; Latitude = [[ListItems objectAtIndex: 2] doubleValue];
listItems objectAtIndex : 3 ] doubleValue ] ; longitude = [[ListItems objectAtIndex: 3] doubleValue];
{ Else {}
/ / Erreur
}
Lieu CLLocationCoordinate2D;
location.latitude = latitude;
location.longitude = longitude;

Lieu de retour;
}

Notes d'intérêt

, alla stregua della funzione explode ( ) del PHP per intenderci. La chaîne retournée dans locationString est "split" par la méthode componentsSeparatedByString , comme la fonction explode ( ) en PHP par exemple. J'ai mis l'exemple que j'ai proposé - mais commenté - le code pour récupérer le paramètre de précision, même Google, la précision ou le facteur d'échelle, notée zoom .

Source comme

Pour être complet, j'ai fait un exemple d'application petits avec lesquels vous pouvez essayer la méthode proposée ci-dessus, entrer d'adresse et de l'iPhone va montrer sur la carte.


Télécharger Source

Je remercie l'équipe devAPP pour l'inspiration de cet article.

Suite ...

Adobe Flash CS4: Créer un chargeur Ajax ou Indicateur d'activité

Créer un chargeur Ajax (ou indicateur de l'activité pour ceux qui sont déjà habitués à utiliser l'iPhone d'Apple) pour le Web n'est pas une chose difficile: il ya des services qui génèrent des images gif animées de tous types. Cependant, le format GIF a le gros inconvénient de ne pas soutenir la transparence comme il se doit. Transparence dans GIF plan actuel comprend un seul bit avec la conséquence que, si nous n'avons pas un uniforme couleur de fond, les bords de l'image sont visiblement granuleuse et fragmenté.

Suite ...

Récupérer les images chargées dans un message

Lorsque vous écrivez un message dans WordPress, vous pouvez télécharger des images à la même période l'écriture de l'article. Ces images, qui font partie de la bibliothèque multimédia, sont associées à ce poste particulier. La particularité de ce comportement réside dans la capacité d'extraire de ces images, peu importe si elles étaient physiquement placés à l'intérieur du poste.

Suite ...

Tutorial Photoshop: des effets avec des ombres

Dans ce tutoriel, je vais vous montrer quelques effets spéciaux qui peuvent être appliquées à un objet rectangulaire simple en jouant avec les ombres. Évidemment, je ne veux pas dire un effet d'ombre appliqué sur une couche, mais vraies ombres créées manuellement. D'abord dessiner un rectangle sur une couche comme ceci:

Rettangolo

Suite ...

iPhone SecondApp: Devinez le nombre - Partie 2

Comme mentionné iPhone FirstApp: Devinez le nombre - Partie 1 , nous voyons comment faire une application pour l'iPhone d'Apple sans utiliser Interface Builder! En effet, nous allons éliminer les fichiers physiques créés par Interface Builder, Xcode assistant. A la fin de ce post, alors, nous avons une demande identique à tous égards, à celle obtenue dans la première partie, avec la différence que nous allons atteindre tous nos composants visuels, y compris la fenêtre principale, complètement à code.

L'application déjà fait, si vous voulez juste à télécharger, est disponible sur mon référentiel Google Code:

Je tiens à signaler immédiatement que la ZIP de cet exemple un poids inférieur à la dernière fois! :)

Nous créons le projet

Nous commençons par créer notre projet SecondApp (pour la distinguer de FirstApp), mais cette fois choisissez Fenêtre application basée sur:

newproject

Maintenant, nous allons supprimer tout ce qui concerne Interface Builder. : eliminatelo anche dal file system, quindi selezionate Also Move to Trash . Supprimez le fichier MainWindow.xib , situé dans le dossier Resources : aussi le supprimer du système de fichiers, puis sélectionnez Déplacer vers la corbeille aussi. nella casella Main nib file base name : Sélectionnez ensuite le fichier SecondoApp-info.plist et de supprimer la référence à l' MainWindow nib boîte de nom de fichier de base principale:

deleteib

A ce stade, nous n'avons plus de n'importe quel ordinateur Windows, au moins par Interface Builder. , e modifichiamo la funzione main() in questo modo: Nous avons donc ouvrir le fichier main.m , situé dans Other Sources , et de modifier la fonction main() comme ceci:

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];

/ / En supprimant le fichier. XIB nous avons manqué le point
/ / Délégué à l'APP, puis le passer à «la main»
UIApplicationMain ( argc, argv, nil , @ "SecondAppAppDelegate" ) ; int RETVAL = UIApplicationMain (argc, argv, nul, @ "SecondAppAppDelegate");

; [Communiqué de piscine];
retour retVal;
}

Ouvrez SecondAppAppDelegate.me puis créer la fenêtre principale dans le code suivant:

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

/ / Retourne la taille de l'écran (320, 480)
UIScreen mainScreen ] applicationFrame ] ; CGRect windowRect = [[Ecran UIScreen] applicationFrame];
/ / Création d'une fenêtre - comme nous l'avons fait dans Interface Builder bye bye
[ [ UIWindow alloc ] initWithFrame : windowRect ] ; MainWindow UIWindow * = [[UIWindow alloc] initWithFrame: windowRect];
/ / Définir le fond de la fenêtre au jaune, à différencier
/ / La FirstApp demande antérieure
[ UIColor yellowColor ] ] ; [SetBackgroundColor MainWindow: [UIColor yellowColor]];

mainWindow ] ; [Self setWindow: mainWindow];
; [Fenêtre makeKeyAndVisible];

; [MainWindow release];
}

Vous pouvez déjà tester l'application, si vous obtenez une fenêtre jaune vous avez tout fait correctement!

, necessario solo se si usa Interface Builder. Dans le fichier SecondAppAppDelegate.h nous pouvons éliminer IBOutlet , uniquement nécessaire si vous utilisez Interface Builder. Également ajouter ici que nos variables globales, la dernière fois que nous étions entrés dans le contrôleur. Puis modifier le fichier SecondAppAppDelegate.h :

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

NSObject <UIApplicationDelegate> { SecondAppAppDelegate @ interface: NSObject {<UIApplicationDelegate>
UIWindow * fenêtre;

UITextField * nombre;
UIButton * bouton;
numeroACaso int;
}

nonatomic, retain ) UIWindow * window; @ Property (nonatomic, retenir) UIWindow * fenêtre;

void ) controllaNumero; - (Void) getNumber;

@ Fin

, in quanto non stiamo usando Interface Builder. Encore une fois, nous avons préparé la définition de méthode controllaNumero , comme la dernière fois, mais nous avons éliminé l'indication IBAction , parce que vous n'utilisez pas d'Interface Builder.

Nous construisons l'interface à partir du code

C'est le temps de créer du code en utilisant tous les composants de notre interface. ed inseriamo il seguente codice: Revenons au fichier SecondAppAppDelegate.m , posizioniamoci avant [mainWindow release] et insérez le code suivant:

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
/ / Création de la barre de titre
[ [ 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: @ "Devinez un nombre"];
navigationItem animated : NO ] ; [MyNavigationBar pushNavigationItem: navigationItem animé: NO];
myNavigationBar ] ; [Fenêtre addSubview: myNavigationBar];

/ / Création de l'étiquette
[ [ 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 = @ "iPhone a conçu un numéro de 1 à 10, essayez de deviner?"
myLabel ] ; [Fenêtre addSubview: MyLabel];

/ / Création de saisie de texte
UITextField alloc ] initWithFrame : CGRectMake ( 10 , 120 , 300 , 30 ) ] ; = nombre [[UITextField alloc] initWithFrame: CGRectMake (10, 120, 300, 30)];
numero.borderStyle = UITextBorderStyleRoundedRect;
numero.textAlignment = UITextAlignmentCenter;
numero.keyboardType = UIKeyboardTypeNumberPad;
"Inserisci il numero" ; numero.placeholder = @ "Entrez le numéro";
numero ] ; [Fenêtre addSubview: nombre];

/ / Créer le bouton
UIButton buttonWithType : UIButtonTypeRoundedRect ] ; bouton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
10 , 180 , 300 , 30 ) ; bottone.frame = CGRectMake (10, 180, 300, 30);
@ "Premi qui" forState : UIControlStateNormal ] ; [Bouton setTitle: @ "Cliquez Ici" Forst: UIControlStateNormal];
self action : @selector ( controllaNumero ) forControlEvents : UIControlEventTouchUpInside ] ; Bouton [AddTarget: action d'auto: @ selector (getNumber) forControlEvents: UIControlEventTouchUpInside];
bottone ] ; [Fenêtre addSubview: bouton];

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

della scorsa volta, subito dopo il [mainWindow release]; inseriamo: Depuis le « applicationDidFinishLaunching correspond à viewDidLoad que la dernière fois, juste après le [mainWindow release]; insérer:

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

Maintenant, nous pouvons faire est de mettre en œuvre la méthode controllaNumero , qui sera identique (à part le prototype) à ce moment-là utilisé en dernier:

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 (@ "nombre Pressé contrôle bouton");
[ numero.text integerValue ] ; numeroInserito = int [numero.text integerValue];
message; NSString * message;
"Il numero inserito è %d" , numeroInserito ) ; NSLog (@ "Le numéro saisi est% d", numeroInserito);
numeroInserito <numeroACaso ) { if (numeroInserito <numeroACaso) {
"Troppo basso..." ; message = @ "Trop peu ...";
( numeroInserito> numeroACaso ) { } Else if (numeroInserito> numeroACaso) {
"Troppo alto..." ; message = @ "Trop haut ...";
( numeroInserito == numeroACaso ) { } Else if (numeroInserito numeroACaso ==) {
"Bravo hai indovinato" ; message = @ "Bravo, vous avez deviné»;
+ arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%;
"Numero pensato %d" , numeroACaso ) ; NSLog (@ "% d Nombre pensé," numeroACaso);
}
[ [ UIAlertView alloc ] UIAlertView alertMessaggio * = [[UIAlertView alloc]
"Responso" initWithTitle: @ "Réponse"
message: message
déléguée: néant
"OK" cancelButtonTitle: @ "OK"
] ; otherButtonTitles: nil];
; [AlertMessaggio spectacle];
; [AlertMessaggio release];
"" ; numero.text @ = "";
}

Nous en avons terminé!

Conclusions et considérations

, proprio perchè volevo lasciarlo il più semplice e snello possibile e, anche, per dimostrare che non sono elementi sempre necessari. Cet exemple ne fait pas une utilisation directe d'un UIView ou UIViewController , juste parce que je voulais quitter ce aussi simple et rationnel que possible et, aussi, de montrer que les éléments ne sont pas toujours nécessaires. Toutefois insérer des objets directement dans la fenêtre peut avoir un certain sens, dans cet exemple et d'autres contextes sporadiques. portano comunque benefici in tantissimi altri casi, ein alcuni sono praticamente indispensabili; come avremo modo di vedere in futuro. L'utilisation de UIView et UIViewController apporter des avantages dans de nombreux autres cas, cependant, certaines sont pratiquement indispensables ein, comme nous le verrons dans le futur.

Suite ...

WordPress: utilisation shortcodes

Depuis la version 2.5 de WordPress (de préférence 2.5.1) sont disponibles dits shortcodes , une procédure qui permet la création de crochets de rappel ou plutôt, quand le texte de notre message se trouve une chaîne formatée avec des supports tels que [id_shortcode] . Avant la sortie de WordPress 2.5 shortcodes ont été mis manuellement (voir Napolux ), maintenant vous pouvez exploiter avec plus de simplicité et pour différentes utilisations.

Suite ...

iPhone FirstApp: Devinez le nombre - Partie 1

La première source que je me levai dans mes mains a été écrit en Basic et se composait de quelques lignes de code, de m'avoir éclairé. C'était un jeu simple qui génère un nombre aléatoire de 1 à 10 et, par saisie au clavier, vérifiez que le numéro saisi est Maggioni, inférieur ou égal au nombre aléatoire. En dépit de sa rude simplicité reste, pour moi, l'un des meilleurs exemples - simple, amusant et pratique - pour expliquer à ceux qui ne savent rien sur la programmation ce que signifie réellement pour «programme informatique». J'ai donc décidé de le proposer pour l'iPhone d'Apple, peut-être va aider quelqu'un ...

Suite ...

Tutoriel Photoshop: chaîne de texte à se

Peut-être pas tout le monde connaît le potentiel de manipulation de texte dans Photoshop, en particulier le fait qu'il peut manipuler le texte de manière très avancée. Par exemple, si nous voulions "bend" du texte, nous serions tentés d'utiliser la fonction "Créer texte déformé" Altera testo , Qui ouvre une fenêtre avec ces paramètres:

Altera testo

Suite ...

ActionScript 3.0 pour les débutants: leçon n ° 5

Qui a commencé à développer du code avec les langages de script tels que JavaScript ou ActionScript les mêmes, ne peuvent pas connaître tous le concept de type de données. Avec certains langages de haut niveau, en fait, elle sert à - au mieux - pour déclarer des variables sans donner un type spécifique de données, sans compter les langues qui ne nécessitent pas de déclaration (tels que PHP - pas dans la version stricte 5 ).

Suite ...