2011-01-14 11 views
0

私は画像コンテキストからUIImageを作成し、それをCALayerのコンテンツとして設定しようとしています(画像は分割され、複数のCALayersに広がってしまいます)。唯一の問題は、正しく整列されていないように見えることです.30ピクセルほどオフセットされています。CALayer内での背景の整列

- (id)initWithFrame:(CGRect)frame { 
    if ((self = [super initWithFrame:frame])) { 

     number = 1; 

     background = [UIImage imageNamed:@"numberBackground.png"]; 

     // draw images 
     UIGraphicsBeginImageContext(CGSizeMake(background.size.width, background.size.height)); 

     [background drawAtPoint:CGPointMake(0, 0)]; 

     NSString *numberString = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d", number]]; 
     [[UIColor whiteColor] set]; 
     [numberString drawAtPoint:CGPointMake(0, 0) withFont:[UIFont fontWithName:@"HelveticaNeue" size:128]]; 

     UIImage *front = [UIGraphicsGetImageFromCurrentImageContext() retain]; 

     UIGraphicsEndImageContext(); 

     // top layer 
     topLayer = [CALayer layer]; 
     [topLayer setContents:(id)front.CGImage]; 
     [topLayer setContentsGravity:@"kCAGravityTop"]; 
     [topLayer setFrame:CGRectMake(0, 0, background.size.width, background.size.height/2)]; 
     [topLayer setAnchorPoint:CGPointMake(0, 1)]; 
     [topLayer setPosition:CGPointMake(0, background.size.height/2)]; 
     [topLayer setMasksToBounds:NO]; 
     [topLayer setBackgroundColor:[UIColor lightGrayColor].CGColor]; 
     [self.layer addSublayer:topLayer]; 

    } 
    return self; 
} 

私はまだ画像を投稿するのに十分な評判ポイントを持っているが、ここでは層がどのようにレンダリングする必要があり、完全なイメージだけでなく、レンダリング方法ですしていない:link text

答えて

0

は私のミスを発見 - setContentsGravity私のNSStringリテラル@ "kCAGravityTop"ではなく、組み込みの文字列定数kCAGravityTopを取ります。

関連する問題