iOS 让视图UIView 单独显示某一侧的边框线

Posted 初秋的天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 让视图UIView 单独显示某一侧的边框线相关的知识,希望对你有一定的参考价值。

iOS 让视图UIView 单独显示某一侧的边框线

 

 

 

 

有时候需要让view显示某一侧的边框线,这时设置layer的border是达不到效果的。在网上查阅资料发现有一个投机取巧的办法,原理是给view的layer再添加一个layer,让这个layer充当边框线的角色。根据这个方法我写了一个函数,有需要的朋友可以拿去试下。

 

复制代码
- (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];
    }
}
复制代码

以上是关于iOS 让视图UIView 单独显示某一侧的边框线的主要内容,如果未能解决你的问题,请参考以下文章

与其他 UIView 边框线重叠时的 UIView 边框线粗细

iOS从另一个视图的一侧滑动一个UIView(菜单)

反应原生在视图的一侧添加边框

如何删除自定义uiview中的边框线?

将 UIView 滑动到一边,让他消失 - ios

在不同的边上添加不同宽度的边框