文档章节

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

iOS赵师顺
 iOS赵师顺
发布于 2016/07/27 16:14
字数 236
阅读 10
收藏 0
点赞 0
评论 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
博文 73
码字总数 35628
作品 0
昌平
程序员
用UITextView撸一个顺畅的评论输入框

对比UITextField 继承关系: UITextField继承自UIControl,UITextView继承自UIScrollView; 输入行数 UITextView支持多行输入,可以滑屏垂直滚动,UITextField仅支持单行输入 Placeholder UI...

STzen ⋅ 05/10 ⋅ 0

蛇和梯子游戏,分别用oc和swift开发

蛇和梯子游戏,分别用oc和swift开发 心血来潮想学学swift,看了一下教程和开发文档,发现其实swift的很多类都是基于oc的,比如swift的UIButton是基于oc的UIButton。所以我想其实学过oc再学s...

weixin_42012181 ⋅ 04/18 ⋅ 0

【转载】NGUI UILabel 文字破碎

项目使用NGUI,最近碰到 Loading界面的提示文字破碎的Bug。 参考了以下文章 转自http://blog.csdn.net/huutu http://www.liveslives.com 下面先来了解一下为什么会出现这种问题。 需要了解的...

linda012518 ⋅ 05/09 ⋅ 0

UIButton 背景色渐变动画

UIButton 背景色渐变动画 项目有个需求需要UIButton上的背景色是渐变动画的效果,如下。 实现 CAGradientLayer 用于实现渐变效果,CABasicAnimation用于对Layer做动画 源码:https://github.c...

qin_shi ⋅ 04/17 ⋅ 0

Swift中优雅的为UIButton添加链式的Block点击事件

UIButton是基于 action - target 的事件机制处理点击事件的。通常,如果我们需要添加一个 UIButton 的点击事件的时候,一般会这么做: 当然,可能对于同一个 button 我们可能会添加不止一个状...

BennyLoo ⋅ 04/14 ⋅ 0

iOS XIB约束适配 || 字体 根据屏幕宽变化

简单实现XIB上的约束值,按照指定需求自动变化(根据屏幕宽度变化)。 基准图(750 * 1334)上控件距离左边为20 达到效果:5s(640 1136)上运行距离为 20(320/375.0) = 17.07; 6s(750 133...

ShouldChang ⋅ 05/22 ⋅ 0

如何穿透TableView中的button滑动feeds流?

1. cell中的按钮如何透传滑动事件? tableviewcell中画了一个button,但是从button开始滑动tableview会失效,造成一定几率tableview无法滑动。 1.1. UIView+UIImageView+UILabel 实现UIButto...

zyq522376829 ⋅ 05/23 ⋅ 0

iOS关于换肤和夜间模式的一些思考

介绍 好久没写文章了,正好最近在研究换肤,所以将最近的心得和体会与大家分享一下。 iOS换肤的方式比较单一,查找了很多资料,发现主流的方式有如下两种: } 自己的想法 首先我们应该明确需...

shenglanya ⋅ 05/14 ⋅ 0

经典Win95风格的iOS UI 组件集 ClassicKit

ClassicKit是 Windows 95 经典风格的iOS 开源UI 组件集。图标,窗框的资源都来自Windows 95。每个组件都像 UIKit 的对应组件一样使用,例如,CKButton 像 UIButton 一样响应手势事件。同时这...

marsdream ⋅ 05/21 ⋅ 0

iOS 端富文本控件 - NudeIn

NudeIn NudeIn 是一个基于 UITextView ,书写风格类似于 masonry 的 iOS 端富文本控件,它采用优雅的声明式方法定义富文本控件,和编程式的不同,它所需的代码量相当短,且非常直观易用。 Us...

HJ-CAI ⋅ 06/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 12分钟前 ⋅ 0

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 50分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 51分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 今天 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 今天 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部