UIImageView
- iOS9之后设置layer. cornerRadius和masksToBounds不会再产生离屏渲染
- 但是加上了背景色、边框阴影或其他有图像内容的图层,还是会产生离屏渲染
设置圆角
1
| testImageView.layer.cornerRadius = 10
|
只设置 layer.cornerRadius
设置 layer.cornerRadius + layer.masksToBounds(对应view的clipsToBounds属性)
- 无文本内容背景图片阴影等图层(或子视图)时不会产生离屏渲染
- 但是加上了文本阴影或其他有图像内容的图层(或子视图),还是会产生离屏渲染
需要注意的是UILabel在iOS11及以上这种情况下并不会触发离屏渲染
设置圆角
1
| testView.layer.cornerRadius = 10
|
1 2 3 4
| testLabel.layer.cornerRadius = 10 testLabel.layer.backgroundColor = UIColor.red.cgColor testLabel.layer.borderColor = UIColor.gray.cgColor testLabel.layer.borderWidth = 2
|
1 2 3 4 5 6 7 8 9 10 11 12
| 文本 testButton.layer.cornerRadius = 10 testButton.setTitle("Button", for: .normal) testButton.backgroundColor = .red
BackgroundImage 使用UIGraphics 或者 UIBezierPath先切割图片再赋值
Image testButton.setImage(UIImage(named: "icon"), for: .normal) testButton.imageView?.layer.cornerRadius = 10 testButton.imageView?.clipsToBounds = true
|