質問

I was following a tutorial on a Core Animation book and I tried to do the following.

@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

According to the book, the code above should print a blue layer on the screen in the middle on top of layerView. But, I can only see layerView and blueLayer is no where to be seen. Does anyone know what is happening? I'm lost.

役に立ちましたか?

解決

You should be getting a warning on this line

self.blueLayer = [CALayer layer];

Since self.bluelayer is a weak pointer, ARC will discard the object as soon as it's created. The property should be declared strong.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top