日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

贝塞尔曲线切割圆角

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 贝塞尔曲线切割圆角 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ios 系統框架已經給我們提供了相應的切割圓角的方法, 但是如果在一個見面有很多控件切割的話會出現卡頓和個別不切的現象

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 /* 創建一個Button */ ???UIButton * button = [UIButton buttonWithType:(UIButtonTypeSystem)]; ???[button setFrame:CGRectMake(100, 100, 100, 100)]; ???[self addSubview:button]; /* 正常的圓角需求處理方法 */ ??button.layer.cornerRadius = 10.0f; //弧度 ??button.layer.masksToBounds = YES; /* 貝塞爾曲線切割 */ ??/** ???* ???* @param UIRectCorner ???* 左上 UIRectCornerTopLeft?? = 1 << 0, ????左下 UIRectCornerBottomLeft = 1 << 2, ????右下 UIRectCornerBottomRight = 1 << 3, ????所有角 UIRectCornerAllCorners = ~0UL ???* ???*/ UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft cornerRadii:button.bounds.size]; ??CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init]; ??//設置大小 ??maskLayer.frame = button.bounds; ??//設置圖形樣子 ??maskLayer.path = maskPath.CGPath; ??button.layer.mask = maskLayer;

注意: 如果這里選擇兩個角 的話如果是選兩個對角線 則會切 所有角

比如:UIRectCornerTopLeft | UIRectCornerBottomRight 他就會切割所有角

當然你也可以直接創建個圓角的button

僅供參考,鏈接http://www.jb51.net/article/118140.htm ? 感謝分享

?

但是在實際開發中 ?不建議這么寫

18年04月為止切圓角的性能最好的方法是,用 ?貝塞爾曲線 和 ?context上下文來 ?畫圓角。 ?用 ?button.layer.masksToBounds 和?button.layer.mask都會對性能帶來很大的消耗

總結

以上是生活随笔為你收集整理的贝塞尔曲线切割圆角的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。