Dziwna sytuacja - przykłady z prac w Apple, ale po tym jak je trochę zmienię, tekst nie jest wyświetlany. Ten fragment kodu słusznie zwraca niebieskie tło ale odmawia rysowania tekstu na nim bez względu na to, co mam zrobić:iPhone: jak narysować tekst w oknie?
#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");
}
Teraz, kiedy na to patrzę, nie wierzę, że Monaco jest obsługiwaną czcionką na iPhonie. Wypróbuj Helvetica i zobacz, czy rysuje: http://www.alexcurylo.com/blog/2008/10/05/snippet-available-uifonts/ –
Masz rację. Brak czcionki o nazwie "monaco" - wypróbowałem dwie najczęściej używane czcionki na moim komputerze MacOS i nie zgadłem. Szkoda, że CGContextSelectFont nie wyrzuca wyjĘ ... tku, jeś li nie jest dostę pna nieobsługiwana czcionka :(To może dać się na koniec w wersji do debugowania – grigoryvp