addSublayer不会在视图上添加任何子图层

时间:2014-03-22 22:59:40

标签: ios core-animation calayer layer

我正在关注核心动画书的教程,我尝试了以下内容。

@interface ViewController () 
@property (nonatomic, weak) IBOutlet UIView * layerView;
@property (nonatomic, weak) CALayer *blueLayer;
@end

@implementation ViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.blueLayer = [CALayer layer];
    self.blueLayer.frame = CGRectMake(50.0f, 50.0f, 100.0f, 100.0f);
    self.blueLayer.backgroundColor = [UIColor blueColor].CGColor;
    [self.layerView.layer addSublayer: self.blueLayer];
}



... 

@end

根据这本书,上面的代码应该在layerView顶部中间的屏幕上打印一个蓝色图层。但是,我只能看到layerViewblueLayer无处可见。有谁知道发生了什么?我输了。

1 个答案:

答案 0 :(得分:2)

你应该在这一行收到警告

self.blueLayer = [CALayer layer];

由于self.bluelayer是弱指针,因此ARC会在创建对象后立即丢弃该对象。该属性应声明为strong