2013-01-09 58 views
0

我有一個簡單的單視圖應用程序,出於某種原因,我無法在應用程序的UIView中顯示CALayer。該視圖的背景色是正確的,但CALayer中的圖像不可見。我已經完成了調試器中的代碼,我確信圖像正在正確加載。如果不是使用CALayer我使用UIImageView一切都如你所願。無法讓CALayer在UIView中顯示

這裏是我的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; 
} 

回答

2

或者設置正確的anchorpoints,或使用

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

代替

containerLayer.bounds = cardRect; 
.. 
imageLayer.bounds = cardRect; 
+0

感謝 - 這奏效了。現在我明白了爲什麼。 :) – RobertJoseph