适当的使用一些宏,在开发中还是十分便捷的。
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>
网友评论