2012-03-13 100 views
0

我想用CATextLayerNSAttributedString的形式显示一些部分粗体显示的文本 - 但仍想使用IB定位的便利性。界面生成器中的CATextLayer?

有没有办法在接口构建器中删除CATextLayer?或者下一个最佳解决方案是什么?

回答

3

可以配置一个UIView子类在IB然后将其layerClassCATextLayer代码:

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

在视图的init方法(S)配置CATextLayer属性。

要访问层的属性:

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

所以我尝试这种方法,但我的新的子类,从的UIView继承它不知道有关CATextLayer方法。 'self.myView.string = @“test”;'给出'属性'字符串'在'MyView *'类型的对象上未找到' – trapper 2012-03-13 20:03:54

+1

属性位于图层上,而不是视图。请参阅答案编辑中的其他代码示例。 – FluffulousChimp 2012-03-13 20:07:14

+0

啊,是的,好的,现在正在工作。虽然考虑它,我可以在代码中创建我的CATextLayer,然后将它作为子层添加到我的定位UIView中。省去继承UIView的麻烦 – trapper 2012-03-13 20:56:16