并不是啥好方法,就是一个View
在这我只是展示一些用起来很方便的宏定义
// 一条线
+ (UIView *)getLineFramePosY:(CGFloat)posY withSuperView:(UIView *)superView isRight:(BOOL)isRight{
CGFloat lineX = isRight ? 0 : 15;
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(lineX, posY, KLScreenWidth, 0.5)];
line.backgroundColor = KLColorFrom16RGB(0xDCDCDC);
[superView addSubview:line];
return line;
}
其中一些宏定义
// 根据16位RBG值转换成颜色,格式:KLColorFrom16RGB(0xFF0000)
#define KLColorFrom16RGB(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]
// 根据10位RBG值转换成颜色, 格式:KLColorFrom10RBG(255,255,255)
#define KLColorFrom10RGB(RED, GREEN, BLUE) [UIColor colorWithRed:RED/255.0 green:GREEN/255.0 blue:BLUE/255.0 alpha:1.0]
// 获取应用屏幕大小
#define KLAppFrame [[UIScreen mainScreen] applicationFrame]
#define KLScreenBounds [UIScreen mainScreen].bounds
#define KLScreenWidth KLScreenBounds.size.width
#define KLScreenHeight KLScreenBounds.size.height
#define KLViewHeight CGRectGetHeight(KLScreenBounds) - 44 - 20
// 对字符串做特殊的宏,即保证返回的值不为空
#define ISNIL(x) ((x) == nil ? @"" : (x))
#define ISNILDefault(x, y) ((x) == nil ? y : (x))
#define ISNULL(x) ((x) == nil || [(x) isEqualToString:@"(null)"] ? @"" : (x))
// 对于block的弱引用
#define kBlockSelf __block __typeof(self)blockSelf = self;
// 日志打印
#ifdef DEBUG
#define KLLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define KLLog(...)
#endif