У меня есть простое, приложение единственного представления, и по некоторым причинам я не могу заставить CALayer
показывать в приложении UIView
. Цвет фона представления правилен, но изображение в CALayer
не видимо. Я ступил через код в отладчик, и я уверен, что изображение загружается правильно. Если вместо того, чтобы использовать CALayer
я использую UIImageView
, все работает, как вы ожидали бы.
Вот код от моего UIViewController
подкласс. Вы видите то, что я делаю неправильно?
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor darkGrayColor];
CALayer* cardLayer = [self layerForCard];
[self.view.layer addSublayer:cardLayer];
}
- (CALayer *)layerForCard
{
UIImage* cardImage = [UIImage imageNamed:@"card1.jpg"];
CGSize cardSize = cardImage.size;
CGRect cardRect = CGRectMake(.0, .0, cardSize.width, cardSize.height);
//Container Layer
CALayer *containerLayer = [CALayer layer];
containerLayer.bounds = cardRect;
containerLayer.opacity = 1.0;
//Image Layer
CALayer *imageLayer = [CALayer layer];
imageLayer.bounds = cardRect;
imageLayer.contentsGravity = kCAGravityResizeAspectFill;
imageLayer.contents = CFBridgingRelease(cardImage.CGImage);
[containerLayer addSublayer:imageLayer];
return containerLayer;
}