У меня есть эта небольшая проблема, и я думаю, что у меня есть из-за отсутствия моего опыта в разработке iOS.В любом случае, я пытаюсь отобразить некоторый предустановленный текст в виде слоя для моей плоскости (один квадрат).Я использую OpenGL ES 1.1, и я решил установить UILabel, а затем использовать его слой в качестве моей текстуры.Все должно быть хорошо, но у меня есть некоторые проблемы.Вот как я получаю слой:
- (void) convertTextToTexture:(NSString*)text toImage:(UIImage*)image {
UILabel *label = [[UILabel alloc] init];
CGSize size = [text sizeWithFont:[UIFont boldSystemFontOfSize:12]];
[label setBounds:CGRectMake(0, 0, size.width, size.height)];
[label setFrame:CGRectMake(0, 0, size.width, size.height)];
[label setFont:[UIFont boldSystemFontOfSize:12]];
[label setLineBreakMode:UILineBreakModeWordWrap];
[label setNumberOfLines:1];
label.text = text;
label.textColor = [UIColor redColor];
UIGraphicsBeginImageContext(label.frame.size);
[label.layer renderInContext:UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[label release];
}
и я называю его так:
UIImage *image = [[UIImage alloc] initWithData:someData];
[self convertTextToTexture:@"TEXT" toImage:image];
Результат: я всегда получаю someData
.Если я просто alloc
и init
, я получаю белую текстуру.Я думаю, что это простая ошибка с использованием указателей и настройкой этой информации.Хотя в отладчике я заметил, что размер UILabel
всегда равен 0x0
.
Спасибо за вашу помощь и / или мнение.