【问题标题】:addSublayer doesn't add any sublayer on the viewaddSublayer 不会在视图上添加任何子层
【发布时间】:2014-03-22 22:59:40
【问题描述】:

我正在学习一本核心动画书籍的教程,并尝试执行以下操作。

@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 无处可寻。有谁知道发生了什么?我迷路了。

【问题讨论】:

    标签: ios core-animation calayer layer


    【解决方案1】:

    你应该在这一行收到警告

    self.blueLayer = [CALayer layer];
    

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

    【讨论】:

    • 哦,废话,现在可以了!我猜那本书是错的……谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多