一些好用的宏

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

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))

This is a code block.

你可能感兴趣的:(一些好用的宏)