view添加侧边框
在实现view的(任意)侧边框,通过CALayer,因为在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。
其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层
@property(nonatomic,readonly,retain) CALayer *layer;
当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示。
UIView之所以能够显示,完全是因为内部的CALayer对象。因此,通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等。
下边是添加侧边框的代码:
[self setBorderWithView:_tableView top:NO left:YES bottom:NO right:YES borderColor:[UIColor colorWithHex:@"#EEEEEE"] borderWidth:0.6];
- (void)setBorderWithView:(UIView *)view top:(BOOL)top left:(BOOL)left bottom:(BOOL)bottom right:(BOOL)right borderColor:(UIColor *)color borderWidth:(CGFloat)width
{
if (top) {
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(0, 0, view.frame.size.width, width);
layer.backgroundColor = color.CGColor;
[view.layer addSublayer:layer];
}
if (left) {
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(0, 0, width, view.frame.size.height);
layer.backgroundColor = color.CGColor;
[view.layer addSublayer:layer];
}
if (bottom) {
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(0, view.frame.size.height - width, view.frame.size.width, width);
layer.backgroundColor = color.CGColor;
[view.layer addSublayer:layer];
}
if (right) {
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(view.frame.size.width - width, 0, width, view.frame.size.height);
layer.backgroundColor = color.CGColor;
[view.layer addSublayer:layer];
}
}