让视图单独显示某一侧的边框线
有时候需要让view显示某一侧的边框线,这时设置layer的border是达不到效果的。在网上查阅资料发现有一个投机取巧的办法,原理是给view的layer再添加一个layer,让这个layer充当边框线的角色。根据这个方法我写了一个函数,有需要的朋友可以拿去试下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
- (
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];
}
}
|