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