2014-03-04 14 views
1

我正試圖在UITutton內駐留一個UITableViewCell來做一些CALayer的東西。 我已經導入,但CALayer操作不起作用。 當我將它移動到cellForRowAtIndexPath方法時,它工作正常。 我確實希望在單元本身的類內進行一次更改,而不是在表創建表內進行更改。 你有什麼想法嗎?順便說一句,我確實看到init上的NSLog文本(所以我知道它進入了塊)。當寫入initWithCoder時CALayer更改未顯示

謝謝!直到viewDidLoad被調用,它實際上是從你的xibStoryboard加載控件

- (id)initWithCoder:(NSCoder *)aDecoder { 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     NSLog(@"STARTED coder init in testResultCell"); 
     [[self.bubbleMore layer] setMasksToBounds:YES]; 
     [[self.bubbleMore layer] setBorderWidth:3.0f]; 
     [[self.bubbleMore layer] setBorderColor:[UIColor blueColor].CGColor]; 
     [[self.bubbleMore layer] setCornerRadius:20.0f]; 
    } 
    return self; 
} 
+0

是在initWithCoder內已經可用的圖層嗎?我認爲你必須在進行屏幕顯示時進行操作... – Volker

+0

你說過「我希望在單元格本身的類內部進行一次更改」,但是接受了需要將代碼放入視圖控制器的答案而不是滿足您要求的答案。 –

+0

你是對的提摩太,對不起(改變它)。 我還是一個新手,在我編輯了一下後,我已經爲其他回覆投了票(沒有考慮到這個改變可能不會發生)。 Tnx的提示和答案:-) – Loves2Develop

回答

2

將代碼移動到awakeWithNib。您的店鋪將不會在initWithCoder中連接。從Apple's documentation

當一個對象收到一個awakeFromNib消息時,它保證其所有的outlet實例變量都被設置。

1

用戶界面對象不可用。請將您的代碼移至viewDidLoad,它應該可以正常工作。

如果您添加一個斷點並查看self.bubbleMore,它將在initWithCode函數中爲nil