如何自定义UIView的单个边缘?

时间:2011-09-22 10:25:10

标签: iphone ios cocoa-touch uiview

我知道通过设置UIView图层的borderWidth和borderColor属性,我可以自定义整个边框。但是现在我只想更改边框的边缘,有人知道怎么做吗?

1 个答案:

答案 0 :(得分:3)

我认为一个简单的解决方案是在视图的CALayer上添加一个子图层来模拟边框,例如:

float borderWidth = 5.0;
CALayer *mockBorder = [CALayer layer];
[mockBorder setBorderColor:[[UIColor blueColor] CGColor]];
[mockBorder setBorderWidth:borderWidth];
[mockBorder setFrame:CGRectMake(-1.0 * borderWidth,
                                0.0,
                                yourView.frame.size.width + 2 * borderWidth,
                                yourView.frame.size.height + borderWidth)];
[[yourView layer] addSublayer:mockBorder];

上面的示例模拟了一个向上的边界。通过调整CGRectMake中的参数,您可以创建各种组合,例如向上+向左,向上+向下等。

当屏幕旋转时,不要忘记更新子图层的框架。