2014-03-04 16 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