UIButton前方,UIView添加漸變邊框

思路參考
舉例UIButtom思路:
1镇饮、 首先創(chuàng)建一個(gè)臨時(shí)的 UIView
2、 然后利用 CAGradientLayer 在 UIView 上面進(jìn)行漸變繪制
3术羔、將UIView 進(jìn)行截圖返回 UIImage
4杨箭、將返回的 UIImage 設(shè)置到 UIButton 的 setBackgroundImage
這樣就可以完成了一個(gè)UIButton 的漸變色 繪制寞焙,并且可以根據(jù)不用的顏色來設(shè)置Button UIControlStateNormal | UIControlStateHighlighted | UIControlStateDisabled 來進(jìn)行設(shè)置效果。
5、在已經(jīng)繪制好有漸變色的UIView 上面蓋多一個(gè)白色的 UIView 比 上面那個(gè)UIView 小一些像素 即可
下面直接貼代碼

/**
 btnRect:按鈕的frame
 borderWidth:按鈕的邊框?qū)挾? 默認(rèn)圓角為高度的1/2捣郊,修改圓角需要修改gradientLayer和whiteView的cornerRadius
 */
- (UIImage *)getImageWithFrame:(CGRect)btnRect withBorderWidth:(CGFloat)borderWidth{
    CGFloat btnWidth = btnRect.size.width;
    CGFloat btnHeight = btnRect.size.height;
    //用來放置漸變色的view
    UIView *crView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, btnWidth, btnHeight)];
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.colors = @[(__bridge id)[UIColor colorWithRed:1 green:172/255.0 blue:64/255.0 alpha:1].CGColor, (__bridge id)[UIColor colorWithRed:254/255.0 green:119/255.0 blue:119/255.0 alpha:1].CGColor];
    gradientLayer.locations = @[@0.3, @0.7];
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(1.0, 0);
    gradientLayer.frame = CGRectMake(0, 0, crView.frame.size.width, crView.frame.size.height);
    gradientLayer.cornerRadius = btnHeight*1.0/2;
    [crView.layer addSublayer:gradientLayer];
    //空白view
    UIView *whiteView = [[UIView alloc] initWithFrame:CGRectMake(borderWidth, borderWidth, btnWidth-borderWidth*2, btnHeight-borderWidth*2)];
    whiteView.layer.cornerRadius = btnHeight*1.0/2;
    whiteView.backgroundColor = [UIColor whiteColor];
    [crView addSubview:whiteView];
    //把配置好的view轉(zhuǎn)變成image
    CGSize s = CGSizeMake(btnWidth, btnHeight);
    // 下面方法辽狈,第一個(gè)參數(shù)表示區(qū)域大小。第二個(gè)參數(shù)表示是否是非透明的呛牲。如果需要顯示半透明效果刮萌,需要傳NO,否則傳YES娘扩。第三個(gè)參數(shù)就是屏幕密度了
    UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
    [crView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
    
}

使用方法:

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(0, 200, 200, 50);
    [btn setTitle:@"+關(guān)注" forState:UIControlStateNormal];
    [btn setBackgroundImage:[self getImageWithFrame:btn.frame withBorderWidth:0.5] forState:UIControlStateNormal];
    [self.view addSubview:btn];

參考文檔還寫了漸變文字的方法着茸,我嘗試了下沒成功,改天再看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末琐旁,一起剝皮案震驚了整個(gè)濱河市涮阔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灰殴,老刑警劉巖敬特,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異牺陶,居然都是意外死亡伟阔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門掰伸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皱炉,“玉大人,你說我怎么就攤上這事狮鸭『辖粒” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵怕篷,是天一觀的道長。 經(jīng)常有香客問我酗昼,道長廊谓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任麻削,我火速辦了婚禮蒸痹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呛哟。我一直安慰自己叠荠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布扫责。 她就那樣靜靜地躺著榛鼎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上者娱,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天抡笼,我揣著相機(jī)與錄音,去河邊找鬼黄鳍。 笑死推姻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的框沟。 我是一名探鬼主播藏古,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忍燥!你這毒婦竟也來了拧晕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤灾前,失蹤者是張志新(化名)和其女友劉穎防症,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎甲,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔫敲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炭玫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奈嘿。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吞加,靈堂內(nèi)的尸體忽然破棺而出裙犹,到底是詐尸還是另有隱情,我是刑警寧澤衔憨,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布叶圃,位于F島的核電站,受9級(jí)特大地震影響践图,放射性物質(zhì)發(fā)生泄漏掺冠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一码党、第九天 我趴在偏房一處隱蔽的房頂上張望德崭。 院中可真熱鬧,春花似錦揖盘、人聲如沸眉厨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憾股。三九已至鹿蜀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荔燎,已是汗流浹背耻姥。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留有咨,地道東北人琐簇。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像座享,于是被迫代替她去往敵國和親婉商。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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