設置帶邊框的不同尺寸的圓角

設置如圖紅色框里面的圓角樣式痴柔,帶邊框:

extension UIView {

? ? //各圓角大小

? ? struct CornerRadii {

? ? ? ? vartopLeft:CGFloat=0

? ? ? ? vartopRight:CGFloat=0

? ? ? ? varbottomLeft:CGFloat=0

? ? ? ? varbottomRight:CGFloat=0

? ? }


? ? //切圓角函數(shù)繪制線條

? ? func createPathWithRoundedRect( bounds:CGRect,cornerRadii:CornerRadii) ->CGPath{

? ? ? ? let minX = bounds.minX

? ? ? ? let minY = bounds.minY

? ? ? ? let maxX = bounds.maxX

? ? ? ? let maxY = bounds.maxY


? ? ? ? //獲取四個圓心

? ? ? ? let topLeftCenterX = minX+? cornerRadii.topLeft

? ? ? ? let topLeftCenterY = minY+cornerRadii.topLeft


? ? ? ? let topRightCenterX = maxX-cornerRadii.topRight

? ? ? ? let topRightCenterY = minY+cornerRadii.topRight


? ? ? ? let bottomLeftCenterX = minX +? cornerRadii.bottomLeft

? ? ? ? let bottomLeftCenterY = maxY - cornerRadii.bottomLeft


? ? ? ? let bottomRightCenterX = maxX-? cornerRadii.bottomRight

? ? ? ? let bottomRightCenterY = maxY-cornerRadii.bottomRight


? ? ? ? //雖然順時針參數(shù)是YES咏窿,在iOS中的UIView中采蚀,這里實際是逆時針

? ? ? ? let path :CGMutablePath = CGMutablePath();

? ? ? ? //頂 左

? ? ? ? path.addArc(center:CGPoint(x: topLeftCenterX, y: topLeftCenterY), radius: cornerRadii.topLeft, startAngle:CGFloat.pi, endAngle:CGFloat.pi*3/2, clockwise:false)

? ? ? ? //頂右

? ? ? ? path.addArc(center:CGPoint(x: topRightCenterX, y: topRightCenterY), radius: cornerRadii.topRight, startAngle:CGFloat.pi*3/2, endAngle:0, clockwise:false)

? ? ? ? //底右

? ? ? ? path.addArc(center:CGPoint(x: bottomRightCenterX, y: bottomRightCenterY), radius: cornerRadii.bottomRight, startAngle:0, endAngle:CGFloat.pi/2, clockwise:false)

? ? ? ? //底左

? ? ? ? path.addArc(center:CGPoint(x: bottomLeftCenterX, y: bottomLeftCenterY), radius: cornerRadii.bottomLeft, startAngle:CGFloat.pi/2, endAngle:CGFloat.pi, clockwise:false)

? ? ? ? path.closeSubpath();


? ? ? ? returnpath;

? ? }


? ? //MARK:添加4個不同尺寸的圓角(可以設置邊框)

? ? func addCorner(cornerRadii:CornerRadii, size:CGSize, borderColor:UIColor, borderWidth:CGFloat) {

? ? ? ? let rect =CGRect(origin:CGPoint(x:0, y:0), size: size)

? ? ? ? let path =createPathWithRoundedRect(bounds: rect, cornerRadii:cornerRadii)

? ? ? ? let shapLayer =CAShapeLayer()


? ? ? ? shapLayer.frame= rect

? ? ? ? shapLayer.path= path

? ? ? ? self.layer.mask= shapLayer



? ? ? ? //設置邊框

? ? ? ? let borderLayer =CAShapeLayer()

? ? ? ? borderLayer.path= path

? ? ? ? borderLayer.fillColor=UIColor.clear.cgColor

? ? ? ? borderLayer.strokeColor= borderColor.cgColor

? ? ? ? borderLayer.lineWidth= borderWidth

? ? ? ? borderLayer.frame= rect

? ? ? ? self.layer.addSublayer(borderLayer)

? ? }


? ? //MARK:添加4個不同尺寸的圓角(不可以設置邊框)

? ? func addCorner(cornerRadii:CornerRadii, size:CGSize) {

? ? ? ? let rect =CGRect(origin:CGPoint(x:0, y:0), size: size)

? ? ? ? let path =createPathWithRoundedRect(bounds: rect, cornerRadii:cornerRadii)

? ? ? ? let shapLayer =CAShapeLayer()


? ? ? ? shapLayer.frame= rect

? ? ? ? shapLayer.path= path

? ? ? ? self.layer.mask= shapLayer

? ? }


}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末榔袋,一起剝皮案震驚了整個濱河市祷愉,隨后出現(xiàn)的幾起案子商架,更是在濱河造成了極大的恐慌余舶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件发绢,死亡現(xiàn)場離奇詭異硬耍,居然都是意外死亡,警方通過查閱死者的電腦和手機边酒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門经柴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墩朦,你說我怎么就攤上這事坯认。” “怎么了介杆?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵鹃操,是天一觀的道長。 經(jīng)常有香客問我春哨,道長荆隘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任赴背,我火速辦了婚禮椰拒,結果婚禮上,老公的妹妹穿的比我還像新娘凰荚。我一直安慰自己燃观,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布便瑟。 她就那樣靜靜地躺著缆毁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪到涂。 梳的紋絲不亂的頭發(fā)上脊框,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天颁督,我揣著相機與錄音,去河邊找鬼浇雹。 笑死沉御,一個胖子當著我的面吹牛,可吹牛的內容都是我干的昭灵。 我是一名探鬼主播吠裆,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烂完!你這毒婦竟也來了试疙?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤抠蚣,失蹤者是張志新(化名)和其女友劉穎效斑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柱徙,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年奇昙,在試婚紗的時候發(fā)現(xiàn)自己被綠了护侮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡储耐,死狀恐怖羊初,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情什湘,我是刑警寧澤长赞,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站闽撤,受9級特大地震影響得哆,放射性物質發(fā)生泄漏。R本人自食惡果不足惜哟旗,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一贩据、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闸餐,春花似錦饱亮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拂铡,卻和暖如春壹无,著一層夾襖步出監(jiān)牢的瞬間葱绒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工格遭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哈街,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓拒迅,卻偏偏與公主長得像骚秦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子璧微,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容