iOS - CALayer添加背景图片

作者: lizhi_boy | 来源:发表于2019-04-19 20:34 被阅读116次

给一个视图添加背景图通用的做法是:定义一个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". */

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

相关文章

网友评论

    本文标题:iOS - CALayer添加背景图片

    本文链接:https://www.haomeiwen.com/subject/mlwcgqtx.html