除了UIImageView可以承载图片,可以使用CALayer对象来展示图片。
CALayer *sublalyer = [CALayer layer]; //获取一个新的CALayer实例
sublalyer.backgroundColor = [UIColor purpleColor].CGColor; //颜色
sublalyer.shadowOffset = CGSizeMake(10, 10); //阴影的偏差值,
sublalyer.shadowRadius = 3.0; //阴影的半径(效果是layer和shadow的距离),
sublalyer.shadowColor = [UIColor blackColor].CGColor;
sublalyer.shadowOpacity = 0.8; //shadow的透明度
sublalyer.frame = CGRectMake(130, 130, 128, 192); //子层的frame值
[self.view.layer addSublayer:sublalyer]; //然后把新的层add到view的层里。
//新建imagelayer放置图片,图片的大小会自动压缩来适应CALayer
CALayer *imageLayer = [CALayer layer];
imageLayer.frame = sublalyer.bounds;
imageLayer.cornerRadius = 20.0;
sublalyer.cornerRadius = 20.0;
imageLayer.contents = (id)[UIImage imageNamed:@"buff.png"].CGImage;
imageLayer.masksToBounds = YES;
[sublalyer addSublayer:imageLayer];
//使用一个UIView对象的CAlayer时候,Contents内容不会随着layer大小压缩,而是保持原样,contents可以是CGImage,还可以是另一个CALayer对象。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 50, 100)];
label.backgroundColor = [UIColor blackColor];
label.layer.backgroundColor = [UIColor greenColor].CGColor;
label.layer.contents =(id)[UIImage imageNamed:@"buff.png"].CGImage;
[self.view addSubview:label];