Situation étrange - exemples d'Apple fonctionne, mais après que je les change un peu, le texte n'est pas affiché. Ce morceau de code tire correctement fond bleu, mais refuse de tirer texte, peu importe ce que je fais:iPhone: comment dessiner du texte dans une fenêtre?
#import <UIKit/UIKit.h>
@interface CWnd : UIWindow @end
@implementation CWnd
- (void) drawRect : (CGRect) i_poRect
{
// This is working : windows is blue.
CGContextRef oContex = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(oContex, 0, 0, 255, 1);
CGContextFillRect(oContex, i_poRect);
// This is not working : not text is displayed.
CGContextSelectFont(oContex, "Monaco", 10, kCGEncodingFontSpecific);
CGContextSetRGBStrokeColor(oContex, 255, 0, 0, 1);
CGContextSetRGBFillColor(oContex, 255, 0, 0, 1);
CGContextSetTextDrawingMode(oContex, kCGTextFill);
CGContextSetTextPosition(oContex, 100, 100);
CGContextShowText(oContex, "abc", 3);
}
@end
@interface CDelegate : NSObject <UIApplicationDelegate> @end
@implementation CDelegate
- (void)applicationDidFinishLaunching : (UIApplication *) i_poApp
{
CGRect oRect = [ [ UIScreen mainScreen ] bounds ];
[ [ [ CWnd alloc] initWithFrame : oRect ] makeKeyAndVisible ];
}
@end
int main(int argc, char *argv[])
{
return UIApplicationMain(argc, argv, nil, @"CDelegate");
}
Maintenant que je le regarde, je ne crois pas que Monaco soit une police supportée sur l'iPhone. Essayez Helvetica et voyez si ça dessine: http://www.alexcurylo.com/blog/2008/10/05/snippet-available-uifonts/ –
Vous avez raison. Aucune police nommée 'monaco' - j'ai essayé deux polices les plus utilisées sur mon PC de développement MacOS et je n'ai pas réussi à deviner. Il est dommage, bien que CGContextSelectFont ne jetez pas exception si la police unexisted est fournie :(. Il peut faire valoir dans la construction de débogage à la fin. – grigoryvp