52

MapView のサブビューとして UIImageView を追加する必要があります。これを行うために、MapView の上にレイヤーを作成しました。このレイヤーに画像を配置したいのですが、白い長方形しか得られません。私の画像が表示されません。

これはコードです:

- (void)viewDidLoad
{
    //......

    CALayer *layer = [CALayer layer];
    layer.backgroundColor = [[UIColor whiteColor] CGColor];

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        layer.bounds = CGRectMake(self.mapView.bounds.origin.x,
                                  self.mapView.bounds.origin.y, 80, 300);
    }
    else
    {
        layer.bounds = CGRectMake(self.mapView.frame.origin.x,
                                  self.mapView.frame.origin.y, 150, 700);
    }

    layer.contents = (id)[UIImage imageNamed:@"myImage.png"];
    //the name is correct but  in the output the image is not visible

    [[self.mapView layer] addSublayer:layer];
    [layer setNeedsDisplay];
}
4

7 に答える 7

47

そうでなければならない

layer.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage;

UIImage を直接レイヤーに配置することはできず、CGImage のみをレイヤーに配置できます。

于 2012-11-07T15:39:35.167 に答える
9

私は削除しました

 [layer setNeedsDisplay];

理由はわかりませんが、うまくいきます!

于 2012-11-08T11:27:27.203 に答える
4

デフォルトは CGRectZero であるため、CALayer のフレームを適切に設定する必要があります。

于 2014-03-26T15:18:41.070 に答える