欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

设置控件圆角,只设置上面两个角的圆角(任意角)

程序员文章站 2022-06-16 08:26:24
设置控件圆角,只设置上面两个角的圆角,下面两个角依然是直角,如图效果: 代码(通过贝塞尔曲线重绘layer层ÿ...

设置控件圆角,只设置上面两个角的圆角,下面两个角依然是直角,如图效果:

设置控件圆角,只设置上面两个角的圆角(任意角)

代码(通过贝塞尔曲线重绘layer层):

[objc]  view plain  copy
  1. UIImageView *picImageView = [[UIImageView alloc] initWithFrame:CGRectMake(100100100100)];  
  2.     picImageView.backgroundColor = [UIColor greenColor];  
  3.     [self.view addSubview:picImageView];  
  4.       
  5.     UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:picImageView.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(1010)]; // UIRectCornerBottomRight通过这个设置  
  6.       
  7.     CAShapeLayer *maskLayer = [CAShapeLayer layer];  
  8.     maskLayer.frame = picImageView.bounds;  
  9.     maskLayer.path = maskPath.CGPath;  
  10.       
  11.     picImageView.layer.mask = maskLayer;  
[objc]  view plain  copy
  1. UIImageView *picImageView = [[UIImageView alloc] initWithFrame:CGRectMake(100100100100)];  
  2.     picImageView.backgroundColor = [UIColor greenColor];  
  3.     [self.view addSubview:picImageView];  
  4.       
  5.     UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:picImageView.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(1010)]; // UIRectCornerBottomRight通过这个设置  
  6.       
  7.     CAShapeLayer *maskLayer = [CAShapeLayer layer];  
  8.     maskLayer.frame = picImageView.bounds;  
  9.     maskLayer.path = maskPath.CGPath;  
  10.       
  11.     picImageView.layer.mask = maskLayer;  

所以这个方法可以改变任意角的圆角。