美文网首页iOS DeveloperiOS进阶+实战
iOS11新特性——改善view圆角

iOS11新特性——改善view圆角

作者: 爱抽烟的芭比 | 来源:发表于2017-06-20 21:44 被阅读3774次

在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动画的。

相关文章

  • iOS11新特性——改善view圆角

    在iOS11之前,view展示圆角的处理过程为: 如此,便可以显示一个圆角的view: iOS11对圆角功能进行了...

  • iOS同时设置圆角和阴影含部分圆角

    阴影和圆角都是CAlayer的特性。在iOS11之前,阴影和圆角基本是不能共存的,设置了圆角,再设置阴影的时候,阴...

  • iOS 11新特性 - LargeTitle

    更新了iOS11之后,系统APP大量使用了新的UI风格,那就是iOS11的新特性-Large Title和新的Se...

  • UIView设置阴影

    PS: clipsToBounds masksToBounds 如果View没有圆角或View圆角位置上没有别的控...

  • IOS11新特性之maskedCorners

    在iOS11之前,view展示圆角的处理过程为: 作为基础知识点,相比大家都懂,那么如果要你实现下图的样式呢? 其...

  • iOS11新特性

    2018-6-26来源:http://iphone.tgbus.com/tutorial/use/201706/2...

  • iOS11新特性

    [TOC] iOS11 大标题 iOS11 导航栏搜索框 iOS11 Safe Area Insets UITab...

  • iOS11新特性

    前言 虽然 WWDC 是一个开发者会议,但是 Keynote 并不是专门针对我们开发者的,它还承担了公司状况说明,...

  • IOS11新特性

    新增框架 Core ML:负责简化和集成机器学习的框架 ARKit:用来创建增强现实 (AR) 应用 Vision...

  • iOS一些代码的取巧写法总结(二)

    一、在xib/storyboard里面设置view圆角半径 在xib/storyboard里面设置view圆角半径...

网友评论

    本文标题:iOS11新特性——改善view圆角

    本文链接:https://www.haomeiwen.com/subject/ymvaqxtx.html