ImageWithColor 圖片 由顏色值生成

UIButton設置背景圖片時,是需要一張圖片才可以。但是我又想直接通過UIColor來設置,那怎么辦?

0x01.Objective C版本

有個方法是可以將UIColor轉(zhuǎn)化成UIImage對象,可以畫出圖片,不用讓美工MM去設計一張圖片,省時間,實際項目還是做成圖片的好。

實際使用中將下面代碼貼在.m文件包含頭文件下的開頭位置處即可。

@interface UIImage (Color)  
  
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;  
  
@end  
  
@implementation UIImage (Color)  
  
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size  
{  
    CGRect rect = CGRectMake(0, 0, size.width, size.height);  
    UIGraphicsBeginImageContext(rect.size);  
    CGContextRef context = UIGraphicsGetCurrentContext();  
    CGContextSetFillColorWithColor(context,color.CGColor);  
    CGContextFillRect(context, rect);  
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext();  
      
    return img;  
}  
@end  

使用實例如下:

self.slider   = [[UISlider alloc] init];
CGSize size   = CGSizeMake(1.0, 1.0);
UIImage *image = [UIImage imageWithColor:[UIColor redColor] size:size];
[self.slider setThumbImage:image forState:UIControlStateNormal];

0x02.swift版本。

import Foundation
import UIKit

extension UIImage {
    class func imageWithColor(_ color: UIColor) -> UIImage {
        
        let rect = CGRect(x: 0, y: 0, width: 1.0, height: 1.0)
        UIGraphicsBeginImageContext(rect.size)
        let context = UIGraphicsGetCurrentContext()
        context?.setFillColor(color.cgColor)
        context?.fill(rect)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        
        return image!
    }
}

使用方法:

slider = UISlider()
slider.setThumbImage(UIImage.imageWithColor(UIColor.red), for: UIControlState())
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,315評論 4 61
  • 任之行于英彬日精進分享 顯現(xiàn)-練習——使用 我行,一切行,我行任之行 選好人,做對事 懂人事 體驗價值從滿足身...
    于英彬閱讀 187評論 0 0
  • 今天寶寶終于到京都啦~ 新快速JR好快,一下就到了~ 今天和朋友匯合去金閣寺,早上還艷陽高照,下午就開始斷斷續(xù)續(xù)下...
    淘氣小企鵝閱讀 434評論 0 0
  • BEYOND FEELING 是一本實用性很強的書籍。有人說它是獨立思考指南,也有人說它是批判性思維指南,不管怎么...
    竹子的CO閱讀 469評論 0 1

友情鏈接更多精彩內(nèi)容