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對圓角功能進(jìn)行了改善,layer新增了maskedCorners屬性:

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

CACornerMask是一個結(jié)構(gòu)體類型:

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

該屬性用于設(shè)置view哪個角顯示圓角:

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

設(shè)置該屬性便可以指定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動畫的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,699評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,275評論 5 13
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,756評論 4 61
  • 福音小學(xué)。 一個幼小的身體笨拙的攀上矮矮的圍墻,嵌在圍墻的玻璃屑在她的小手掌上劃開一道長長的口子,咬著嘴唇不敢哭出...
    豆芽green閱讀 478評論 3 1
  • 我看見你 坐在沙漠中 走在荒田里 頭頂星辰 步伐緩慢 目光堅定 一個人 詩意酒來 孤獨 滿足
    外宇宙少女閱讀 162評論 0 0

友情鏈接更多精彩內(nèi)容