iOS11新特性——改善view圆角

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

  //Objective-C
    UIView *view0 = [[UIView alloc]initWithFrame:CGRectMake(30, 100, 200, 40)];
    view0.backgroundColor = [UIColor grayColor];

    view0.layer.cornerRadius = 15;
    //view0.clipsToBounds = YES;
    view0.layer.masksToBounds = YES;
    [self.view addSubview:view0];
//swift
let view = UIView()
        view.clipsToBounds = true
        view.layer.cornerRadius = 10
        view.frame = .init(x: 30, y: 100, width: 200, height: 40)
        view.backgroundColor = UIColor.lightGray
        self.view.addSubview(view)

如此,便可以显示一个圆角的view:

image.png

iOS11对圆角功能进行了改善,layer新增了maskedCorners属性:

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

CACornerMask是一个结构体类型:

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

该属性用于设置view哪个角显示圆角:

//Objective-C
if (@available(iOS 11.0, *)) {
        view2.layer.maskedCorners = kCALayerMaxXMaxYCorner | kCALayerMaxXMinYCorner;
    } else {
        // Fallback on earlier versions
    }
//swift
view2.layer.maskedCorners = [.layerMaxXMaxYCorner,.layerMinXMaxYCorner]

设置该属性便可以指定view圆角显示:

image.png

此外,iOS11中,view圆角的圆角也支持动画:

//Objective-C
[UIView animateWithDuration:2 delay:1.0 options:UIViewAnimationOptionCurveLinear animations:^{
        view1.layer.cornerRadius = 0;
    } completion:nil];
//swift
        
        UIViewPropertyAnimator.init(duration: 1.0, curve: .linear) {
            view3.layer.cornerRadius = 0
        }.startAnimation()
311-3.gif

在iOS11之前,圆角是不支持UIView动画的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,729评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,563评论 5 13
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,752评论 4 61
  • 福音小学。 一个幼小的身体笨拙的攀上矮矮的围墙,嵌在围墙的玻璃屑在她的小手掌上划开一道长长的口子,咬着嘴唇不敢哭出...
    豆芽green阅读 3,110评论 3 1
  • 我看见你 坐在沙漠中 走在荒田里 头顶星辰 步伐缓慢 目光坚定 一个人 诗意酒来 孤独 满足
    外宇宙少女阅读 1,261评论 0 0

友情链接更多精彩内容