iOS - CALayer添加背景图片

给一个视图添加背景图通用的做法是:定义一个UIImageView然后添加在视图上面。现在我们用一个比较不常用的一个做法,那就是利用Layer的图层设置图片

实现代码如下:

UIView *layerView = [UIView new];
 layerView.frame = CGRectMake(90, 90, 200, 200);
 layerView.backgroundColor = [UIColor whiteColor];
 layerView.layer.contents = (id)[UIImage imageNamed:@"testImage"].CGImage;
 layerView.layer.contentsGravity = @"resizeAspect";
 [self.view addSubview:layerView];

说明一下layercontentscontentsGravity属性

  • contents:这个属性被定义为id类型,意思是说可以是任何类型的对象,实际上你给它任何值它都能编译通过,但是如果你给的对象的类型不是CGImage,那么都将得到空白的图层。
    总的来说:contents只对CGImage类型的对象有感觉
  • contentsGravity:这个属性和UIViewcontentMode属性类似,用来调节图层的对齐方式和拉伸情况,点该属性进去发现这个属性的固定取值有很多个:(具体效果自行实现)
/* A string defining how the contents of the layer is mapped into its
 * bounds rect. Options are `center', `top', `bottom', `left',
 * `right', `topLeft', `topRight', `bottomLeft', `bottomRight',
 * `resize', `resizeAspect', `resizeAspectFill'. The default value is
 * `resize'. Note that "bottom" always means "Minimum Y" and "top"
 * always means "Maximum Y". */

都看到这里了,给个❤️不过分吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。