给一个视图添加背景图通用的做法是:定义一个
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];
说明一下layer
的contents
和 contentsGravity
属性
-
contents
:这个属性被定义为id
类型,意思是说可以是任何类型的对象,实际上你给它任何值它都能编译通过,但是如果你给的对象的类型不是CGImage
,那么都将得到空白的图层。
总的来说:contents
只对CGImage
类型的对象有感觉 -
contentsGravity
:这个属性和UIView
的contentMode
属性类似,用来调节图层的对齐方式和拉伸情况,点该属性进去发现这个属性的固定取值有很多个:(具体效果自行实现)
/* 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". */
都看到这里了,给个❤️不过分吧
网友评论