IOS11新特性之maskedCorners

iOS11之前,view展示圆角的处理过程为:

    self.label.layer.cornerRadius = 20;
    self.label.layer.masksToBounds = YES;

作为基础知识点,相比大家都懂,那么如果要你实现下图的样式呢?

图示

是不是有点麻烦,要多一些步骤?
然而,iOS11对圆角功能进行了增强,layer新增了maskedCorners属性:

@property CACornerMask maskedCorners
  CA_AVAILABLE_STARTING (10.13, 11.0, 11.0, 4.0);

其本质是一个结构体:

typedef NS_OPTIONS (NSUInteger, CACornerMask)
{
  kCALayerMinXMinYCorner = 1U << 0,
  kCALayerMaxXMinYCorner = 1U << 1,
  kCALayerMinXMaxYCorner = 1U << 2,
  kCALayerMaxXMaxYCorner = 1U << 3,
};

这样,我们就能使用这个新属性,实现指定角的圆角处理:

self.label.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;

切身体会到了其有用的地方,以前被UI的图搞过,现在看到这个新特性,贼亲切了~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容