2010-08-11 9 views
0

Existe-t-il un moyen SIMPLE de rendre le texte formaté (d'un tampon char *) à l'affichage ...? En C ou en C++ ou même en Java, sur presque toutes les plateformes, y compris les Embedded, vous pouvez obtenir un pointeur sur un framebuffer ou afficher et afficher du texte simple ou des pixels avec 2 ou 3, 5 lignes max J'ai regardé à travers le web (et dans les livres de développement de l'iphone) mais je dois encore voir n'importe quel rendu de texte à l'affichage, sans passer par une foule de "UI ~ Quelque chose ~ Vues "pour mettre quelques lignes de texte sur l'écran ...Rendu de texte simple sur iPhone (NON UIWebView)

S'il vous plaît dites-moi, je me trompe, et il y a un moyen très simple de rendre le texte, rien d'extraordinaire, juste deux ou trois lignes de plaine vieux texte ascii, pas de cloches et de sifflets, juste un texte en noir et blanc ....

Quelque chose comme: void my_callback() { Global_Pointer_to_screen (x, y, data); }

Merci beaucoup!

+1

Je suis très curieux de savoir comment vous avez réussi à écrire un programme pour rendre le texte à un tampon de trame dans 5 lignes de code en C++/C/Java. – Akusete

+0

Qu'essayez-vous de faire? Est-ce juste pour le but de débogage ou vraiment une sortie à l'utilisateur de l'application iPhone? – hol

+0

"Je suis très curieux de savoir comment vous avez réussi à écrire un programme pour rendre le texte à un frame buffer dans 5 lignes de code en C++/C/Java." Easy On l'appelle un framebuffer ... Ou si vous avez déjà accédé à la fonction graphique au niveau matériel ... ou jamais portés freetype ou libjpg/png, ect ... Vous trouverez 100 façons impaires de rendre pixels (ou texte) de niveau inférieur ... Peut-être que j'ai brouillé un peu le "Java" en C/C++ pour la manipulation des pixels/bits de l'écran – ChinaSailor

Répondre

1

Utilisez un UILabel pour rendre le texte. Rien de fantaisie:

NSString *myString = [NSString stringWithCString:myCString encoding:NSUTF8Encoding]; 
UILabel myLabel = [[UILabel alloc] initWithFrame:CGRectMake((self.bounds.size.width/2), 0.0, 100.0, 50.0) ]; 
[self addSubview:myLabel]; 
myLabel.text = myString; 

Le code ci-dessus n'est vraiment pas difficile à mettre en œuvre. Je ne suis pas vraiment sûr pourquoi vous voulez écrire directement dans le tampon d'affichage. Je ne suis même pas sûr que tu puisses faire ça du tout. Je suis sûr que Apple ne fournit pas un moyen de le faire, sauf si vous utilisez OpenGL. Même alors, vous ne pouvez pas obtenir un pointeur sur l'affichage et écrire dans la mémoire graphique en utilisant un pointeur autant que je sache.

Je vous conseille vivement d'apprendre UIViews et de le faire de la bonne façon.

+0

Utiliser IB rend cela encore plus facile ... – jtbandes

+1

@jtbandes: Oui. il demandait du code. –

+0

Je n'ai rien vu dans la question suggérant qu'il ne veut pas utiliser IB; il est possible qu'il n'en sache pas grand-chose. – jtbandes

0

Vous pouvez utiliser UILabels dans drawRect: pour tracer une chaîne formatée dans un emplacement spécifique, vous n'avez qu'à définir le cadre et appeler manuellement drawRect sur l'étiquette.

Vous pouvez également utiliser Quart2D pour rendre le texte à l'écran ainsi:

http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_text/dq_text.html

Comme vous pouvez le voir, vous avez une variété de méthodes pour configurer le texte que vous dessinez.

Mais la plupart du temps, les gens font simplement UILabels dans InterfaceBuilder, puis ils vont à l'écran.

Dans iOS4.x +, vous avez NSAttributedString que vous pouvez utiliser pour faire du texte au format réel. Mais c'est assez complexe.

+0

De bonnes choses, merci! – ChinaSailor