我一直在思考这个问题。基本上,下面的代码会在UIView
上绘制边框,但是,如果我将另一个UIView
作为子视图添加到UIView
- 它将显示在边框上方。
喜欢这样:
我如何(尽可能干净),将边框保持在所有子视图之上?
喜欢这样:
这是我到目前为止所拥有的。但是,如上所述,它并没有将边界保持在其所有子视图之上。
CGPathRef CGPathRect = CGPathCreateWithRect(rect, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGPathRef border = CGPathCreateCopyByStrokingPath(rect.CGPath, NULL, 5.0f, kCGLineCapButt, kCGLineJoinMiter, 0);
CGContextAddPath(context, border);
CGContextSetFillColorWithColor(context, someCGColor);
CGContextDrawPath(context, kCGPathFill);
CGPathRelease(border);
我可以为边框本身创建一个单独的UIView
,只需在UIView
下面插入子视图,但这感觉相当hackish。如果有更好的方法 - 我很乐意听到它。
答案 0 :(得分:1)
我会说使用:
view.clipToBounds = YES;
view.layer.borderColor = [UIColor redColor];
view.layer.borderWidth = 2;
view.layer.cornerRadius = 4;
所有子视图都被裁剪,你可以保留你的边框:)。