高效切圓角方法

UIView

UIView?*view?=?[[UIView?alloc]?init];

view.backgroundColor?=?[UIColor?blackColor];

view.layer.cornerRadius?=3.f;

//?以下兩行胖烛,任寫一行

view.layer.masksToBounds?=?NO;

view.clipToBounds?=?NO;

//?以下兩行词渤,千萬不要加!

view.layer.masksToBounds?=?YES;

view.clipToBounds?=?YES;

注意點:UIView 只要設(shè)置圖層的 cornerRadius 屬性即可(不明白的話朝捆,可以看看官方文檔里對 cornerRadius 的描述),如果設(shè)置 layer.masksToBounds = YES瞪浸,會造成不必要的離屏渲染砰苍。


UITextField

UITextField有兩種實現(xiàn)方法

//?天然支持設(shè)置圓角邊框

UITextField?*textField?=?[[UITextField?alloc]?init];

textField.borderStyle?=?UITextBorderStyleRoundedRect;

//?與?UIView?類似

UITextField?*textField?=?[[UITextField?alloc]?init];

textField.layer.cornerRadius?=?cornerRadius;


UITextView

//?與?UIView?類似

UITextView?*textView?=?[[UITextView?alloc]?init];

textView.layer.cornerRadius?=?cornerRadius;


UILabel

UILabel?*label=?[[UILabel?alloc]?init];

//?重點在此!谚咬!設(shè)置視圖的圖層背景色,千萬不要直接設(shè)置?label.backgroundColor

label.layer.backgroundColor?=?[UIColor?grayColor].CGColor;

label.layer.cornerRadius?=?cornerRadius;


UIButton

說明:UIButton 的背景圖片通孽,如果是復(fù)雜的圖片序宦,可以依靠 UI 切圖來實現(xiàn)。如果是簡單的純色背景圖片背苦,可以利用代碼繪制帶圓角的圖片互捌。

UIButton?*button?=?[UIButton?buttonWithType:UIButtonTypeCustom];

//?設(shè)置?UIButton?的背景圖片。

[button?setBackgroundImage:image?forState:UIControlStateNormal];

背景圖片繪制方法

+?(UIImage?*)pureColorImageWithSize:(CGSize)size?color:(UIColor?*)color?cornRadius:(CGFloat)cornRadius?{

UIView?*view?=?[[UIView?alloc]?initWithFrame:CGRectMake(0.0f,0.0f,?size.width,?size.height)];

view.backgroundColor?=?color;

view.layer.cornerRadius?=?cornerRadius;

//?下面方法行剂,第一個參數(shù)表示區(qū)域大小秕噪。第二個參數(shù)表示是否是非透明的。如果需要顯示半透明效果厚宰,需要傳NO腌巾,否則傳YES遂填。第三個參數(shù)是屏幕密度

UIGraphicsBeginImageContextWithOptions(view.bounds.size,?NO,?[UIScreen?mainScreen].scale);

[view.layer?renderInContext:UIGraphicsGetCurrentContext()];

UIImage?*image?=?UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

returnimage;

}


UIImageView

UIImageView 有三種方式實現(xiàn)圓角:

貝塞爾曲線切割圓角

-?(UIImageView?*)roundedRectImageViewWithCornerRadius:(CGFloat)cornerRadius?{

UIBezierPath?*bezierPath?=?[UIBezierPath?bezierPathWithRoundedRect:self.bounds?cornerRadius:cornerRadius];

CAShapeLayer?*layer?=?[CAShapeLayer?layer];

layer.path?=?bezierPath.CGPath;

self.layer.mask?=?layer;

returnself;

}

繪制四個角的遮罩(使用場景受限)

在 UIImageView 上添加一個四個角有內(nèi)容,其它部分是透明的視圖澈蝙,只對 UIImageView 圓角部分進行遮擋吓坚。但要保證被遮擋的部分背景色要與周圍背景相同,避免穿幫灯荧。所以當(dāng) UIImageView 處于一個復(fù)雜的背景時礁击,是不適合使用這個方法的。

最不推薦做法(當(dāng)一個頁面只有少量圓角圖片時才推薦使用)

UIImageView?*imageView?=?[[UIImageView?alloc]?init];

imageView.layer.cornerRadius?=5.f;

imageView.layer.masksToBounds?=?YES;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗载,一起剝皮案震驚了整個濱河市哆窿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厉斟,老刑警劉巖挚躯,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異擦秽,居然都是意外死亡码荔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門号涯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來目胡,“玉大人锯七,你說我怎么就攤上這事链快。” “怎么了眉尸?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵域蜗,是天一觀的道長。 經(jīng)常有香客問我噪猾,道長霉祸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任袱蜡,我火速辦了婚禮丝蹭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坪蚁。我一直安慰自己奔穿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布敏晤。 她就那樣靜靜地躺著贱田,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘴脾。 梳的紋絲不亂的頭發(fā)上男摧,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音,去河邊找鬼耗拓。 笑死拇颅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的乔询。 我是一名探鬼主播蔬蕊,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哥谷!你這毒婦竟也來了岸夯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤们妥,失蹤者是張志新(化名)和其女友劉穎猜扮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體监婶,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡旅赢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惑惶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煮盼。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖带污,靈堂內(nèi)的尸體忽然破棺而出僵控,到底是詐尸還是另有隱情,我是刑警寧澤鱼冀,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布报破,位于F島的核電站,受9級特大地震影響千绪,放射性物質(zhì)發(fā)生泄漏充易。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一荸型、第九天 我趴在偏房一處隱蔽的房頂上張望盹靴。 院中可真熱鬧,春花似錦瑞妇、人聲如沸稿静。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽自赔。三九已至,卻和暖如春柳琢,著一層夾襖步出監(jiān)牢的瞬間绍妨,已是汗流浹背润脸。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留他去,地道東北人毙驯。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像灾测,于是被迫代替她去往敵國和親爆价。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言 iOS 客戶端開發(fā)中媳搪,經(jīng)常碰到圓角視圖的需求铭段,本文簡單總結(jié)一下 UIView 及其子類的一些切圓角方法,并且...
    鄭一一一一閱讀 14,118評論 19 70
  • //設(shè)置尺寸為屏幕尺寸的時候self.window = [[UIWindow alloc] initWithFra...
    LuckTime閱讀 819評論 0 0
  • 在iOS中隨處都可以看到絢麗的動畫效果秦爆,實現(xiàn)這些動畫的過程并不復(fù)雜序愚,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,115評論 5 13
  • 在iOS中隨處都可以看到絢麗的動畫效果等限,實現(xiàn)這些動畫的過程并不復(fù)雜爸吮,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,514評論 6 30
  • 1望门、設(shè)置UILabel行間距 NSMutableAttributedString* attrString = [[...
    十年一品溫如言1008閱讀 1,663評論 0 3