IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

为UIView任意角设置圆角

空之境界 2016-02-20 11:43:11 累计浏览 2,539 次
本机暂存

为UIView任意角设置圆角

   圆角在苹果的世界时随处可见的。为视图设置圆角在开发iOS当中是经常要做的事情。要为UIView对象设置圆角也是非常简单地事情。

    view.layer.cornerRadius = 10;

   这样一句代码就轻松为一个view的四个角设置了圆角。当我们需要为view任意一个角设置圆角的时候,需要怎么办呢?有一个方法就是通过layer.mask,也就是遮罩。加上UIBezierPath的+ (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii的这个方法就可以轻松添加圆角遮罩了。

UIRectCorner

   UIRectCorner的定义如下:

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {  
    UIRectCornerTopLeft     = 1 << 0,
    UIRectCornerTopRight    = 1 << 1,
    UIRectCornerBottomLeft  = 1 << 2,
    UIRectCornerBottomRight = 1 << 3,
    UIRectCornerAllCorners  = ~0UL
};

例子

   下面代码就是为一个view三个角设置圆角。

- (void)layoutSubviews{
    [super layoutSubviews];
    CGFloat corner = 50;
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft cornerRadii:CGSizeMake(corner, corner)].CGPath;
    self.layer.mask = shapeLayer;
}

   运行如下:

   为UIView任意角设置圆角

同分类推荐文章

  1. 「置顶」我做了什么 (2026-05-05 12:13:28)
  2. 万字长文推演:手机不再从 App 开始,Agent OS 如何接管任务入口 (2026-04-28 14:57:22)
  3. Android Perfetto 系列 10 - Binder 调度与锁竞争 (2025-11-16 15:33:30)

查看更多 移动开发 文章 →

建议继续学习

  1. App的成本 (累计阅读 7,584)
  2. iPhone下的libcurl with SSL for iOS (累计阅读 6,350)
  3. iOS的定位原理揭秘 (累计阅读 5,946)
  4. iOS内存暴增问题追查与使用陷阱 (累计阅读 5,838)
  5. IOS APP设计流程 (累计阅读 5,085)
  6. 在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配置 (累计阅读 5,076)
  7. iOS push服务 (累计阅读 4,943)
  8. 有关思维,有关Ipad一个Bug的故事 (累计阅读 4,770)
  9. IPhone上的邮件推送 (累计阅读 4,617)
  10. 手机交互设计资料 (累计阅读 4,508)