How can I place an image behind an imageView.

Discussion in 'iOS Programming' started by BarryK88, Apr 15, 2011.

  1. macrumors member

    Mar 1, 2011
    I've got an image which contains multiple layers. The user can set a picture as a layer. However when there isn't a picture available I'd like to have a replacement picture.

    I think I got two options:

    1. check if the image (taken photo) is loaded into my directory. if not place the other image.
    2. placing the other image (photo_icon.png) to the back of the UIImageView (image1). When a photo hasn't been taken the image becomes visible.

    Here's a snippit of my code so far.

    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *pngFilePath = [NSString stringWithFormat:@"%@/photo1.png",docDir];
        UIImage *img = [[UIImage alloc] initWithContentsOfFile:pngFilePath];
        [image1 setImage:img];
        image1.layer.cornerRadius = 15.0;
        image1.layer.masksToBounds = YES;
        CALayer *sublayer = [CALayer layer];
        image1.layer.borderColor = [UIColor blackColor].CGColor;
        image1.layer.borderWidth = 3.5;
        [image1.layer addSublayer:sublayer];    
        CALayer *imageLayer = [CALayer layer];
        imageLayer.frame = image1.bounds;
        imageLayer.cornerRadius = 10.0;
        imageLayer.contents = (id) [UIImage imageNamed:@"Upperlayer.png"].CGImage;
        imageLayer.masksToBounds = YES;
        [sublayer addSublayer:imageLayer];
    replacing the image1 for the image which is needed I use:

    CALayer *imageBackLayer = [CALayer layer];
        imageBackLayer.frame = image1.bounds;
        imageBackLayer.cornerRadius = 10.0;
        imageBackLayer.contents = (id) [UIImage imageNamed:@"photo_icon.png"].CGImage;
        imageBackLayer.masksToBounds = NO;
        [sublayer insertSublayer:imageBackLayer below: image1.layer ];
    Thanks in advance!

Share This Page