0

Я хотел бы использовать CATextLayer для отображения частично полужирного текста в виде NSAttributedString - но все равно хотел бы использовать удобство IB для позиционирования.CATextLayer в интерфейсе Builder?

Есть ли способ отбросить CATextLayer с помощью интерфейса-строителя? Или что является лучшим решением?

ответ

3

Вы можете сконфигурируйте UIView подкласс в IB, то установите его layerClass в CATextLayer в коде:

+ (Class)layerClass; 
{ 
    return [CATextLayer class]; 
} 

В init методе зрения (ов) настроить свои CATextLayer свойства.

Чтобы получить доступ к свойствам слоя:

CATextLayer *textLayer = (CATextLayer *)self.layer; 
textLayer.string = @"Foo"; 
// etc... 
+0

Так что я попытался этот метод, но, как мой новый подкласс наследует от UIView он не знает о методах CATextLayer. 'self.myView.string = @" test ";' дает строку 'Property '' не найден на объекте типа 'MyView *'' – trapper

+1

Свойство находится на уровне, а не в представлении. См. Дополнительный образец кода в редакторе ответов. – FluffulousChimp

+0

Ах, да, хорошо, что сейчас работает. Хотя я думал об этом, я мог бы просто создать свой CATextLayer в коде, а затем добавить его в качестве подуровня для моего позиционирования UIView. Сохранить проблему подкласса UIView – trapper

Смежные вопросы