2012-03-13 106 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