文档章节

16进制色值转换UIColor,UILabel自适应宽度

iOS赵师顺
 iOS赵师顺
发布于 2016/07/27 16:14
字数 236
阅读 11
收藏 0

如:#1e1e1e #ff5f5f转换成UIColor

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

{

    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

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

        cString = [cString substringFromIndex:2];

    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:1.0f];

}

// 计算label的自适应宽度

- (CGFloat)getTextWidthForString:(NSString *)string with:(CGFloat)height with:(UIFont *)font{

    CGRect rect = [string boundingRectWithSize:CGSizeMake(MAXFLOAT, height) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil];

    return rect.size.width;

}

RGB 色值处理 

定义成宏

#define RGBColorMake(_R_,_G_,_B_,_alpha_) [UIColor colorWithRed:_R_/255.0 green:_G_/255.0 blue:_B_/255.0 alpha:_alpha_]

 

© 著作权归作者所有

共有 人打赏支持
iOS赵师顺
粉丝 3
博文 74
码字总数 36150
作品 0
昌平
程序员
IOS不用AutoLayout也能实现自动布局的类(3)----MyRelativeLayout横空

对于IOS开发者来说,在自动布局出现前只能通过计算和设置frame的值来处理,这样设置位置时就会出现很多硬编码,同时在屏幕旋转和不同屏幕之间适配时需要编码重新调整位置和尺寸,我们也可以重...

hejunbinlan
2015/08/19
0
0
UIKit 手写控件转换大小写

// // ViewController.m // 手写转换大小写 // // Created by 非凡程序员 on 15/11/11. // Copyright (c) 2015年 Querida. All rights reserved. // #import "ViewController.h" @interface......

温暖c
2015/11/11
0
0
UITextView控件的详细讲解

1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: [csharp]view plaincopy #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDeleg......

meilidashijie
2013/01/07
0
0
[非凡程序员]UIKit 手写控件

// // ViewController.m // 手写控件 // // Created by 非凡程序员 on 15/11/11. // Copyright (c) 2015年 Querida. All rights reserved. // #import "ViewController.h" @interface ViewC......

温暖c
2015/11/11
0
0
UILabel autolayout自动换行 版本区别

今天解决了一个与UILabel相关的Bug。 表现为在iOS7以上的系统中,UILabel能够自动换行,多行显示的字符串,而在iOS6上面则不会自动换行,直接打省略号。 正常情况下,numberOfLines设置为0,U...

Aimy
2014/12/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

postman发送json格式的post请求

postman发送json格式的post请求 在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/json 点击"body",''ra...

两广总督bogang
9分钟前
0
0
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
10分钟前
0
0
pureftp源码编译及设定

--- use for RHEL 567 and Ubuntu 1604 1. download pureftpd wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.bz2 2. install gcc #apt-get install -y li......

zzimac
12分钟前
0
0
Android 事件分发 简单学

本文地址:https://my.oschina.net/lifj/blog/1928132 Android 事件分发过程 网上有很多这样的文章,我又写了一篇,希望能够清晰明了的告诉大家整体的事件分发过程,而不是一脸懵逼的进来,一...

拉风的道长
12分钟前
0
0
手相学 - 天尊山道人看相算命

手相学 - 天尊山道人看相算命 手并拢,左右手正面,背面,小指侧面共六张照片,(可选:舌象、面相)。光线,自然光较好,非阳光直射。 EM4KBJK}Y9Z6ONEL(C~DDV.jpg 生命线 生命线:由拇指与食...

python测试开发人工智能安全
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部