全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS中设置view圆角化的四种方法示例

前言

在最近进行项目性能优化的过程中,遇到view圆角优化的问题,有一些粗略的看法,现总结一下。分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

设置圆角目前知道的有四种方法:

     1、通过shapeLayer设置

     2、通过view的layer设置

     3、通过BezierPath设置

     4、通过贴图的方式设置

1、shapeLayer的实现

通过bezizerpath设置一个路径,加到目标视图的layer上。代码如下:

// 创建一个view
 UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
 [self.view addSubview:showView];
 showView.backgroundColor = [UIColor whiteColor];
 showView.alpha = 0.5;
 
 // 贝塞尔曲线(创建一个圆)
 UIBezierPath *path = [UIBezierPath  bezierPathWithArcCenter:CGPointMake(100 / 2.f, 100 / 2.f)
              radius:100 / 2.f
              startAngle:0 
              endAngle:M_PI * 2
              clockwise:YES];
 
  CAShapeLayer *layer = [CAShapeLayer layer];
  layer.frame = showView.bounds;
  layer.path = path.CGPath;
  [showView.layer addSublayer:layer];

2、view的layer的实现

通过view的layer直接设置的方式,是所有的方法中最简单的,代码如下:

 - (UIImageView *)avatarImage { 

  if (!_avatarImage) { 
  
  _avatarImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)];
  _avatarImage.backgroundColor = [UIColor grayColor];
  _avatarImage.contentMode = UIViewContentModeScaleAspectFit;
  _avatarImage.layer.cornerRadius = avatarDiameter/2.0;
  _avatarImage.layer.masksToBounds = YES;
  [_avatarImage setImage:[UIImage imageNamed:@"test.jpg"]];
  }
 return _avatarImage;
}

3、BezierPath的实现

BezierPath的实现方式继承UIView,自己实现一个customview,代码如下。

- (instancetype)initWithFrame:(CGRect)frame {
 
 if (self = [super initWithFrame:frame]) {
  
 }
 return self;
}
- (void)drawRect:(CGRect)rect { 
  // Drawing code 
 CGRect bounds = self.bounds;
 [[UIColor whiteColor] set];
 UIRectFill(bounds);

 [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:CGRectGetWidth(bounds)/2.0] addClip];
 [self.image drawInRect:bounds];
} 

4、贴图的实现

贴图的方式是使用一个中间是圆形镂空的图覆盖在需要圆角化的图片的上方。代码如下:

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
 
  if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
  
   [self.contentView addSubview:self.avatarImage];
   [self.contentView addSubview:self.maskImage];
  }
  return self;
 }

- (UIImageView *)avatarImage {
 
  if (!_avatarImage) { 
  
  _avatarImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)];
  _avatarImage.backgroundColor = [UIColor grayColor];
  _avatarImage.contentMode = UIViewContentModeScaleAspectFit;
   [_avatarImage setImage:[UIImage imageNamed:@"test.jpg"]];
  }
  return _avatarImage;
 }

 //中心镂空的图
 - (UIImageView *)maskImage { 
 
  if (!_maskImage) { 
  
  _maskImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)]; 
  _maskImage.contentMode = UIViewContentModeScaleAspectFit; 
  [_maskImage setImage:[UIImage imageNamed:@"corner_circle.png"]]; 
  }
  return _maskImage;
} 

如果大家有什么好的方法,希望推荐给我。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# ios  # view圆角  # view设置圆角  # view切圆角  # iOS应用开发中UIView添加边框颜色及设置圆角边框的方法  # IOS设置按钮为圆角的示例代码  # iOS设置圆角的三种方式  # IOS设置UIView的边框为圆角详解及实例  # iOS中设置圆角的几种方法示例  # iOS设置圆角的三种方法  # iOS设置可选择圆角方向的控件圆角  # iOS设置圆角的4种方法实例(附性能评测)  # 圆角  # 创建一个  # 有什么  # 给我  # 说了  # 不多  # 有一定  # 这篇文章  # 四种  # 谢谢大家  # 最简单  # 过程中  # 塞尔  # 有疑问  # alpha  # UIBezierPath  # UIColor  # addSubview  # backgroundColor  # whiteColor 


相关文章: 电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  电商网站制作公司有哪些,1688网是什么意思?  如何快速搭建自助建站会员专属系统?  建站之星如何实现PC+手机+微信网站五合一建站?  高防服务器租用如何选择配置与防御等级?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  建站之星免费版是否永久可用?  建站三合一如何选?哪家性价比更高?  制作企业网站建设方案,怎样建设一个公司网站?  如何获取PHP WAP自助建站系统源码?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  建站VPS推荐:2025年高性能服务器配置指南  如何通过云梦建站系统实现SEO快速优化?  ,购物网站怎么盈利呢?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站之星Pro快速搭建教程:模板选择与功能配置指南  宝塔建站无法访问?如何排查配置与端口问题?  如何在阿里云香港服务器快速搭建网站?  如何选择高效可靠的多用户建站源码资源?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  Python路径拼接规范_跨平台处理说明【指导】  C#怎么使用委托和事件 C# delegate与event编程方法  建站ABC备案流程中有哪些关键注意事项?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  湖北网站制作公司有哪些,湖北清能集团官网?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何获取免费开源的自助建站系统源码?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  ,网站推广常用方法?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  ,柠檬视频怎样兑换vip?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何彻底删除建站之星生成的Banner?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何通过智能用户系统一键生成高效建站方案?  如何快速生成凡客建站的专业级图册?  如何用腾讯建站主机快速创建免费网站?  如何在香港服务器上快速搭建免备案网站?  如何挑选高效建站主机与优质域名?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  教学网站制作软件,学习*后期制作的网站有哪些?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  C#如何序列化对象为XML XmlSerializer用法  完全自定义免费建站平台:主题模板在线生成一站式服务  如何有效防御Web建站篡改攻击?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何快速搭建FTP站点实现文件共享? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。