UILabel:如何更改除底部边框以外的所有边框?

时间:2012-05-23 10:42:27

标签: ios uilabel border

我知道我可以用

更改边框的对象
item.layer.cornerRadius = floatValue;
item.layer.borderWidth = intValue;
item.layer.borderColor = colorValue;

但我怎样才能改变顶部,左右边界?

感谢您的建议。

2 个答案:

答案 0 :(得分:3)

我认为你不能直接这样做。

this question有几个回复可能有所帮助,包括一个链接到解决问题的open source code的回复。

答案 1 :(得分:2)

可以使用另一层来掩盖你不想看到的角落。这有你的缺点:

  • 无法拥有阴影
  • 不能有另一个面具(如果你不一起做)
  • 将松开边框宽度的一半,因为边框在边框的中心被抚摸

如果您没问题,这里有一个示例代码,可以帮助您入门

CGFloat borderWidth = 4.0;
[[myView layer] setBorderWidth:borderWidth];

CALayer *mask = [CALayer layer];
// The mask needs to be filled to mask
[mask setBackgroundColor:[[UIColor blackColor] CGColor]];
// Make the masks frame smaller in height
CGRect maskFrame = CGRectInset([myView bounds], 0, borderWidth);
// Move the maskFrame to the top
maskFrame.origin.y = 0;
[mask setFrame:maskFrame];
[[myView layer] setMask:mask];