Situación extraña: ejemplos de Apple funciona, pero después de cambiarlos un poco, el texto no se muestra. Este bit de código dibuja correctamente fondo azul, pero se niega a dibujar texto en él, no importa lo que hago:iPhone: cómo dibujar texto en una ventana?
#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");
}
Ahora que lo veo, no creo que Monaco sea una fuente admitida en el iPhone. Pruebe Helvetica y vea si dibuja: http://www.alexcurylo.com/blog/2008/10/05/snippet-available-uifonts/ –
Tiene razón. Ninguna fuente llamada 'monaco' - he probado dos fuentes más usadas en mi PC de desarrollo MacOS y no pude adivinar. Es una lástima, aunque, que CGContextSelectFont no arroje una excepción si se suministra una fuente no existente :(. Puede afirmarse en la construcción de depuración al fin. – grigoryvp