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的图搞过,现在看到这个新特性,贼亲切了~

上一篇下一篇

猜你喜欢

热点阅读