RainedAllNight‘s Blog

Summary-圆角切割

字数统计: 260阅读时长: 1 min
2020/07/10 Share

UIImageView

  • iOS9之后设置layer. cornerRadiusmasksToBounds不会再产生离屏渲染
  • 但是加上了背景色、边框阴影或其他有图像内容的图层,还是会产生离屏渲染

设置圆角

1
testImageView.layer.cornerRadius = 10

UIView&UIButton&UILabel

只设置 layer.cornerRadius

  • 不会产生

设置 layer.cornerRadius + layer.masksToBounds(对应view的clipsToBounds属性)

  • 无文本内容背景图片阴影等图层(或子视图)时不会产生离屏渲染
  • 但是加上了文本阴影或其他有图像内容的图层(或子视图),还是会产生离屏渲染

需要注意的是UILabel在iOS11及以上这种情况下并不会触发离屏渲染

设置圆角

  • UIView
1
testView.layer.cornerRadius = 10
  • UILabel
1
2
3
4
testLabel.layer.cornerRadius = 10
testLabel.layer.backgroundColor = UIColor.red.cgColor
testLabel.layer.borderColor = UIColor.gray.cgColor
testLabel.layer.borderWidth = 2
  • UIButton
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

相关阅读iOS圆角的离屏渲染,你真的弄明白了吗

CATALOG
  1. 1. UIImageView
    1. 1.0.1. 设置圆角
  • 2. UIView&UIButton&UILabel
    1. 2.0.1. 只设置 layer.cornerRadius
    2. 2.0.2. 设置 layer.cornerRadius + layer.masksToBounds(对应view的clipsToBounds属性)
    3. 2.0.3. 设置圆角
    4. 2.0.4. 相关阅读iOS圆角的离屏渲染,你真的弄明白了吗