0

シンプルなシングルビューアプリを使用していますが、何らかの理由でCALayerアプリにを表示できませんUIView。ビューの背景色は正しいですが、の画像は表示されCALayerません。デバッガーでコードをステップ実行し、イメージが正しくロードされていることを確認しました。CALayerIを使用する代わりに、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;
}
4

1 に答える 1

2

正しいアンカーポイントを設定するか、

containerLayer.frame = cardRect;
..
imageLayer.frame = cardRect;

それ以外の

containerLayer.bounds = cardRect;
..
imageLayer.bounds = cardRect;
于 2013-01-09T13:43:06.660 に答える