iPhone开发 – 小技巧二则 (UIColor 16进制颜色 | UIview设置frame)
2016-01-26 14:04
585 查看
引言
开发中总遇到各式各样的问题,解决方法也各有各的不同,可以说是条条大路通罗马吧,但是总有一条或几条是最优的。刚开始的时候我们可能只是为了完成去罗马的任务,但是罗马去多了以后,总会发现有些捷径可以走,既然有捷径,为何还要固执的走偏远的老路呢?可能觉得走老路不需要动脑,Ctrl + c 和 Ctrl + v就可以了,但是这样做是不是觉得有些笨重呢,我本懒人,懒人总得想些办法,达到用最少的代价做同样的事的目的。下面总结了一些小技巧,暂时记录下,未完待续。
1. UIColor 生成问题
简单的UIColor生成,大家都会,下面假设UI设计给了一个颜色,rgb值分别为 212, 207, 232,可以用如下代码实现UIColor *color = [UIColor colorWithRed:212.0/255.0 green:207.0/255.0 blue:232.0/255.0 alpha:1];
这个代码写多了,有些人就会发现,其实255.0是重复的,每次都得重复写,是不是浪费手力?如何破呢?
#define UIColorFromRGB(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A]
上面的颜色值就可以用新定义的宏来表示
UIColorFromRGB(212,207,232,1)
是不是简单些了呢。
如果UI设计给的颜色值是16进制的样式,例如是 0xD4CFE8。你可以说没关系啊,我转成10进制之后用上述宏就可以了。是啊,这可以达到想要的效果,但是想想是不是有些繁琐呢,那如何破呢?
写个宏,把16进制转成10进制就可以了嘛。
#define UIColorFromHEXRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
使用方法
UIColorFromHEXRGB(0xD4CFE8)
这样是不是简单些了呢。
2. UIView单独设置width、height、positionX、positionY
如果需要单独设置一个view的某个frame属性,如何做,最直接的方法是 view.frame = CGRectMake(positionX,positionY,width, height)。可是我只需要设置一个属性啊,不需要全部设置一遍啊。so,怎么破,Make a Category on UIVIew(设置一个UIView的类别)@interface UIView (Customize) - (void)setX:(CGFloat)x; - (void)setY:(CGFloat)y; - (void)setWidth:(CGFloat)width; - (void)setHeight:(CGFloat)height; @end @implementation - (void)setX:(CGFloat)x { CGRect frame = self.frame; frame.origin.x = x; self.frame = frame; } - (void)setY:(CGFloat)y { CGRect frame = self.frame; frame.origin.y = y; self.frame = frame; } - (void)setWidth:(CGFloat)width { CGRect frame = self.frame; frame.size.width = width; self.frame = frame; } - (void)setHeight:(CGFloat)height { CGRect frame = self.frame; frame.size.height = height; self.frame = frame; } @end
使用方法:在需要设置的页面导入该类目(#import “UIView+Customize.h”),之后调用
[view setHeight:60];
是不是清爽了很多呢。
参考
http://stackoverflow.com/questions/1560081/how-can-i-create-a-uicolor-from-a-hex-string
http://stackoverflow.com/questions/24369139/is-there-a-simpler-method-to-set-height-of-uiview
相关文章推荐
- 【IOS】iphone开发资源汇总
- iphone开发教程
- Ipad开发课程系列目录--很好的教程,推荐给大家
- 【iOS-Cocos2d游戏开发】系列(总结了多篇文章,可以好好学习
- Objective-C语法的那些事儿(十篇文章,大家一起来学习)
- 分享15本iphone开发书籍,需要的来下载
- ASIHTTPRequest ASIWebThumbnail
- 日期格式转换
- IV连续旋转
- UIScrollView缩放
- KVO的概述与使用
- KVC的概述与使用
- IOS7状态栏标准适配
- CoreData学习记录
- Xcode 不同版本的链接地址
- 这个是借鉴一个朋友的关于IOS的资料
- iphone开发 加速计
- 保存用户密码的安全方法 .
- 【iOS开发】使用Paros监控iPhone发出的HTTP请求
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir