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.



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.



Avec la version 3.2 d'IOS que vous pouvez inclure vos propres polices dans une ressource d'application pour être utilisé exactement comme ceux fournis avec le système:
file. Les applications qui veulent utiliser des polices personnalisées peuvent désormais inclure des polices ceux dans leur bundle demande et d'enregistrer avec le système par les polices y compris l'
UIAppFontsLeur clé dansInfo.plistfichier. La valeur de cette clé est un tableau de chaînes Identifier les fichiers de polices dans le paquet de l'application. Lorsque le système voit la clé, il charge les polices spécifiées et les rend disponibles à l'application.
), un oggetto di più basso livello con innumerevoli potenzialità. La classe UIView affiche un pointeur sur la couche ( CALayer ), un objet de niveau inférieur au potentiel énorme. La couche fournit une variété de méthodes et propriétés liées à l'affichage du contenu de la vue. Par exemple, vous pouvez manipuler le contenu d'une vue dans un espace tridimensionnel. Dans « contamination de l'échantillon est intéressant de noter que le code est simple, et tout est créé en utilisant Interface Builder:

Je réponds à Mirko me demandant comment faire le cas contraire proposée dans Mise en latitude et longitude en Objective-C .
A partir des valeurs de latitude et longitude, vous pouvez utiliser la classe MKReverseGeocoder d'obtenir un éventail d'informations, telles que: ville, état, adresse complète, chap!
Permettez-moi de démontrer comment il est possible de mettre en œuvre un diaporama simple des images avec très peu de lignes de code, en utilisant jQuery .
Cette technique peut être mise en œuvre sur tout type de site, la chose importante est d'inclure la bibliothèque jQuery . J'ai utilisé cette technique pour un site construit dans WordPress , développé en quelques heures pour un événement.
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; } |
, 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 .
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.
Je remercie l'équipe devAPP pour l'inspiration de cet article.
Après avoir expliqué comment localiser nos chaînes dans Xcode , il est facile de voir maintenant comment - en appliquant la même technique - de localiser et de visualiser des images / interfaces créées avec Interface Builder.
Le processus, tel que mentionné, est la même, si nous avons une image déjà inclus dans nos ressources, ou qu'ils insèrent un nouveau, et nous voulons de «localiser» - qui est, de gérer deux ou plusieurs images sur la base des langues prises en charge - il suffit de cliquer sur le bouton Image de droite ( Adium.png dans cet exemple) et sélectionnez Get Info:

Créer un fichier localisable on clique en bas à gauche.

On clique sur Ajouter et insérez la localisation Italian :

Afin d'obtenir:

esattamente come accadeva con il testo: Notre image est déplacée (physiquement, l'une des rares fois où cela arrive nell'alberatura Xcode est réfléchi sur le système de fichiers) dans le cadre des dossiers virtuels English.lproj et Italian.lproj exactement comme cela s'est produit avec le texte:

contiene una stessa versione dell'immagine. A ce stade, chacun des dossiers English.lproj et Italian.lproj contient la même version de l'image. Cette image est manipulée dans Interface Builder, où nous verrons - par défaut - la version anglaise.
À ce stade, juste écraser un (ou deux fichiers Adium.png ) pour obtenir un emplacement d'images «flash».
Même les interfaces construites avec Interface Builder peuvent être situés dans leur intégralité, lorsque cela est jugé nécessaire. ) con interfaccia XIB , lo selezioniamo, scegliamo Get Info dal menu contestuale, rendiamo il file localizzabile, aggiungiamo la localizzazione in italiano: La procédure est identique à celui effectué avec les capacités graphiques: ajouter un ViewController (par exemple infoViewController ) interface XIB, nous le sélectionner, choisissez Obtenir des informations dans le menu contextuel, donner l'localisables fichier, ajoutez la localisation italienne:

En cliquant ou en italien Italiano va ouvrir Interface Builder! ) all'interno della classica cartella Classes . Cette fois, le système de fichiers, vous remarquerez que vous avez créé deux répertoires ( English.lproj et Italian.lproj ) dans le dossier classes classiques. Les deux auront leurs fichiers infoViewController.xib . Le confort dans ce domaine, clairement résolue dans le code, et quand nous allons instancier notre code du contrôleur, nous aurons un «propre» comme ceci:
1 2 | [ InfoViewController alloc ] ; InfoViewController * info = [InfoViewController alloc]; info.view ] ; [Self.view addSubview: info.view]; |
Comme vous pouvez le voir il n'ya aucune trace d'aucune déclaration concernant l'emplacement, entièrement gérées par le système. Les deux interfaces, bien sûr, peuvent être complètement différents, qui sont en vigueur que deux fichiers séparés XIB.
On m'a demandé comment personnaliser une forme graphique, en particulier une boîte de recherche comme celui sur ce blog. La technique utilisée, ou plutôt que j'utilise, est évidemment valable pour tout type de forme de module. Ce qui change est que la complexité du travail à faire en fonction de la complexité de la forme elle-même.
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é.
Dans Adobe Flash, vous pouvez utiliser un large éventail de externes API fournies par les services Web tels que Facebook , Twitter ou Flickr . Dans ce tutoriel nous allons voir comment intégrer, dans un très simple, les services de Google Maps dans un film CS4 / application Adobe Flash.
Derniers Commentaires
datrix : Merci beaucoup!
Robert : Je rispsoto vos questions avec plaisir. L'idée est vraiment géniale. Je suis à la recherche d'une solution ...
Sting : @ Darius - vous pouvez voir un exemple ici: http://www.fight4fun.it/ cliquant sur: CARTES j'espère ...
Vik : Giustappunto je travaille sur un projet et le client m'a demandé de montrer toutes les nouvelles (qui sont CPT) au ...
Giovambattista Fazioli : @ paso: absolument. Il suffit d'identifier le champ [CCI] entrée [/ cci] que vous souhaitez ...