ImageWithColor 图片 由颜色值生成

UIButton设置背景图片时,是需要一张图片才可以。但是我又想直接通过UIColor来设置,那怎么办?

0x01.Objective C版本

有个方法是可以将UIColor转化成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())
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,321评论 4 61
  • 任之行于英彬日精进分享 显现-练习——使用 我行,一切行,我行任之行 选好人,做对事 懂人事 体验价值从满足身...
    于英彬阅读 1,144评论 0 0
  • 今天宝宝终于到京都啦~ 新快速JR好快,一下就到了~ 今天和朋友汇合去金阁寺,早上还艳阳高照,下午就开始断断续续下...
    淘气小企鹅阅读 2,849评论 0 0
  • BEYOND FEELING 是一本实用性很强的书籍。有人说它是独立思考指南,也有人说它是批判性思维指南,不管怎么...
    竹子的CO阅读 3,157评论 0 1