UIColor的封装

#import <UIKit/UIKit.h>

@interface UIColor (Hex)

// 默认alpha位1

+ (UIColor *)colorWithHexString:(NSString *)color;

//从十六进制字符串获取颜色,

//color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式

+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;

@end

--------------------.m----------------

#import "UIColor+Hex.h"

@implementation UIColor (Hex)

+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha

{

//删除字符串中的空格

NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];

// String should be 6 or 8 characters

if ([cString length] < 6)

{

return [UIColor clearColor];

}

// strip 0X if it appears

//如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾

if ([cString hasPrefix:@"0X"])

{

cString = [cString substringFromIndex:2];

}

//如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾

if ([cString hasPrefix:@"#"])

{

cString = [cString substringFromIndex:1];

}

if ([cString length] != 6)

{

return [UIColor clearColor];

}

// Separate into r, g, b substrings

NSRange range;

range.location = 0;

range.length = 2;

//r

NSString *rString = [cString substringWithRange:range];

//g

range.location = 2;

NSString *gString = [cString substringWithRange:range];

//b

range.location = 4;

NSString *bString = [cString substringWithRange:range];

// Scan values

unsigned int r, g, b;

[[NSScanner scannerWithString:rString] scanHexInt:&r];

[[NSScanner scannerWithString:gString] scanHexInt:&g];

[[NSScanner scannerWithString:bString] scanHexInt:&b];

return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];

}

//默认alpha值为1

+ (UIColor *)colorWithHexString:(NSString *)color

{

return [self colorWithHexString:color alpha:1.0f];

}

@end

时间: 2024-10-12 08:47:00

UIColor的封装的相关文章

论代码规范

1新对象方法和分类方法的命名规范? 通常大家都以类名开头,这样见类名即可敲出该类的方法,比如Color类的方法一般命名为 + (UIColor *)colorWithWhite:(CGFloat)white alpha:(CGFloat)alpha;等等 我们写一个新类比如person类,其实还蛮合适的,因为这是个新类,没很多方法 但是我们给系统类这样写分类就不太方便了,因为系统的colorxxx太多了,导致我们必须在提示下,下拉很多行 才能选到自己写的分类 所以最好用另外的字符串做方法名的头,

UI——label--button

-----------  了解iphone-------- iphone 4/4s 尺寸:3.5英寸 分辨率:640*960 实际的点(大小):320*480 iphone 5/5s 尺寸:4.0英寸 分辨率:640*1136 实际的点:320*568 iphone6 尺寸:4.7 分辨率:750*1334 实际屏幕的点:(375*667) iphone Plus 尺寸:5.5 分辨率:1080*1920 实际:(540*960): 怎么设置标签的位置 (需要设置的标签左上角的坐标以及大小(长,

ios开发抽屉效果的封装使用

#import "DragerViewController.h" #define screenW [UIScreen mainScreen].bounds.size.width @interface DragerViewController () /** <#注释#> */ @property (nonatomic, weak) UIView *leftV; @property (nonatomic, weak) UIView *rightV; @property (non

封装一个UILabel圆形边框显示进度

封装了一个UILabel并让它显示圆形的边框,UILabel上面显示百份比,而边框则用Animation绘制到整个圆占指定百分比的点. 这只是我个人想的继承一个UILabel实现的,用到两个CAShapeLayer,第一个Layer的作用是画出灰色的背影圆圈,第二个Layer位置放置在第一个Layer的上面,并设置为红色描绘颜色并描绘到插定的位置,之后实现相应的动画效果即可. import UIKit class kCircleLabel: UILabel { var percent:Doubl

NSMutableAttributedString---UIButton封装-自带imageview&amp;titlelabel

不知道大家有木有碰到下面这种图标,其实这种在iOS应用上是经常看到的,拿到这种样式的东西怎么做呢?封装,UIImageView+UILabel+UILabel加到UIButton上就可以了,但是这个局限性太大了,很多时候根本达不到那种效果,比如点击阴影,使用的流畅性!这时候我们就得想办法了,而最直接有效的办法就莫过于使用UIButton上自带的imageview&titlelabel做文章了.详情见代码,已经很详细!我的图片是56*56 @2x的,如果大小不同,再稍微调整,为了上传方便,我就用本

iOS开发——UI篇Swift篇&amp;玩转UItableView(四)自定义&amp;封装

UItableView自定义&封装 一:Model 1 class AppsModel: NSObject { 2 3 //定义模型的三个属性 4 var imageName:String! //图片名称 5 var appName:String! //应用名称 6 var appDescription:String! //应用描述 7 8 9 10 //自定义初始化方法 11 init(imageName image_Name:String , app_Name:String , app_De

ios--控件--自定义封装一个控件

感谢原作者的分享: http://blog.csdn.net/zhangao0086/article/details/45622875 前言 一个控件从外在特征来说,主要是封装这几点: 交互方式 显示样式 数据使用 对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内:而一个好的控件除了有对外一致的体验之外,还有其内在特征: 灵活性 低耦合 易拓展 易维护 通常特征之间需要做一些取舍,比如灵活性与耦合度,有时候接口越多越能适应各

IOS 图片剪切(封装数据)

封装 :生成头像(UIImage (NJ).h / .m @interface UIImage (NJ) /** * 生成头像 * * @param icon 头像图片名称 * @param border 头像边框大小 * @param color 头像边框的颜色 * * @return 生成好的头像 */ + (instancetype)imageWithIcon:(NSString *)icon border:(NSInteger)border color:(UIColor *)color;

iOS 商品倒计时 限时特价 限时优惠 功能的封装

最近项目中多个页面用到了 商品特价倒计时的功能  为了偷懒 于是自己封装了一个限时抢购 倒计时的view 代码实现如下: 定向价 限时特价 模型代码实现: #pragma mark 商品定向价模型 @interface STGoodsOrientationPrice : STBaseModel /**定向价**/ @property (nonatomic, copy) NSString *price; /**定向价开始时间**/ @property (nonatomic, copy) NSStr