我是按照一个教程的核心动画书,我试图做以下。
@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
上方打印一个蓝色层。但是,我只能看到layerView
,看不到blueLayer
。有人知道发生了什么吗?我迷路了。
您应该在这一行得到一个警告
self.blueLayer = [CALayer layer];
由于self.bluelayer
是一个弱指针,ARC将在对象创建后立即丢弃它。该属性应声明为strong
。