一些好用的宏

适当的使用一些宏,在开发中还是十分便捷的。

1、返回一个weak 的对象
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self;

// 使用示例 在某一个控制器里
WS(weakself);
[weakself makeDateSource];

2、返回字符串的size

判断是否是大于iOS7
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
方法1:WT_TEXTSIZE(text, font) 传两个参数 text 和 font即可
方法2:WT_MULTILINE_TEXTSIZE(text, font, maxSize) 三个参数 参数maxSize计算字符串的边界条件。

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
#define WT_TEXTSIZE(text, font) [text length] > 0 ? [text \
sizeWithAttributes:@{NSFontAttributeName:font}] : CGSizeZero;
#else
#define WT_TEXTSIZE(text, font) [text length] > 0 ? [text sizeWithFont:font] : CGSizeZero;
#endif

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
#define WT_MULTILINE_TEXTSIZE(text, font, maxSize) [text length] > 0 ? [text \
boundingRectWithSize:maxSize options:(NSStringDrawingUsesLineFragmentOrigin) \
attributes:@{NSFontAttributeName:font} context:nil].size : CGSizeZero;
#else
#define WT_MULTILINE_TEXTSIZE(text, font, maxSize) [text length] > 0 ? [text \
sizeWithFont:font constrainedToSize:maxSize lineBreakMode:mode] : CGSizeZero;
#endif

3、屏幕尺寸

// 适配参数
#define SCALE_H MainScreenHeight/(568)
#define SCALE_W WIDTH/(320)
#define MyCGRect(a,b,c,d) CGRectMake((a)*SCALE_W, (b)*SCALE_H, (c)*SCALE_W, (d)*SCALE_H)

4、颜色RGB 和 十六进制转换

#define WTColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]

#define WTColorAlpha(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
// 随机色
#define WTRandomColor WTColor(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))

<pre><code>This is a code block.
</code></pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //获取屏幕 宽度、高度 //宽度 #define SCREEN_WIDTH ([UIScreen mainScr...
    无所待阅读 348评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,280评论 0 4
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,623评论 0 11
  • 内容来自于 iOS文档中 About Text Handling in iOS 部分 ios平台提供了显示及编辑文...
    纵横而乐阅读 6,932评论 2 21
  • 虽然这一切似乎没有太多的意义,却不得不承认,还有那么多的梦想,放下过去,重新开始,在新的日子里,重生吧,追逐美好的...
    代号微辣阅读 173评论 0 0