IOS11新特性之maskedCorners
2018-07-09 本文已影响247人
IUVO
在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的图搞过,现在看到这个新特性,贼亲切了~