How can I place an image behind an imageView.

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

  1. macrumors member

    Joined:
    Mar 1, 2011
    #1
    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.

    Code:
    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:

    Code:
    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