iOS開發之指定UIView的某幾個角為圓角

2021-08-27 15:46:24 字數 1386 閱讀 1084

如果需要將uiview的4個角全部都為圓角,做法相當簡單,只需設定其layer的cornerradius屬性即可(專案需要使用quartzcore框架)。而若要指定某幾個角(小於4)為圓角而別的不變時,這種方法就不好用了。

對於這種情況,stackoverflow上提供了幾種解決方案。其中最簡單優雅的方案,就是使用uibezierpath。下面給出一段示例**。

uiview

*view2=[[

uiview

alloc

]initwithframe

:cgrectmake

(120,10

,80,80

)];view2

.backgroundcolor=[

uicolor

redcolor];[

self

.view

addsubview

:view2

];uibezierpath

*maskpath=[

uibezierpath

bezierpathwithroundedrect

:view2

.bounds

byroundingcorners

:uirectcornerbottomleft

|uirectcornerbottomright

cornerradii

:cgsizemake(10

,10)];cashapelayer

*masklayer=[[

cashapelayer

alloc

]init

];masklayer

.frame

=view2

.bounds

;masklayer

.path

=maskpath

.cgpath

;view2

.layer

.mask

=masklayer

;

其中,

byroundingcorners:uirectcornerbottomleft | uirectcornerbottomright
指定了需要成為圓角的角。該引數是uirectcorner型別的,可選的值有:

* uirectcornertopleft

* uirectcornertopright

* uirectcornerbottomleft

* uirectcornerbottomright

* uirectcornerallcorners

從名字很容易看出來代表的意思,使用「|」來組合就好了。

感謝原作者簡明扼要的總結!

iOS開發之指定UIView的某幾個角為圓角

如果需要將uiview的4個角全部都為圓角,做法相當簡單,只需設定其layer的cornerradius屬性即可 專案需要使用quartzcore框架 而若要指定某幾個角 小於4 為圓角而別的不變時,這種方法就不好用了。對於這種情況,stackoverflow上提供了幾種解決方案。其中最簡單優雅的方...

iOS開發之指定UIView的某幾個角為圓角

如果需要將uiview的4個角全部都為圓角,做法相當簡單,只需設定其layer的cornerradius屬性即可 專案需要使用quartzcore框架 而若要指定某幾個角 小於4 為圓角而別的不變時,這種方法就不好用了。對於這種情況,stackoverflow上提供了幾種解決方案。其中最簡單優雅的方...

iOS開發之指定UIView的某幾個角為圓角

如果需要將uiview的4個角全部都為圓角,做法相當簡單,只需設定其layer的cornerradius屬性即可 專案需要使用quartzcore框架 而若要指定某幾個角 小於4 為圓角而別的不變時,這種方法就不好用了。對於這種情況,stackoverflow上提供了幾種解決方案。其中最簡單優雅的方...