1

我知道我可以用

item.layer.cornerRadius = floatValue;
item.layer.borderWidth = intValue;
item.layer.borderColor = colorValue;

但是我怎样才能只改变上、左、右边框呢?

谢谢你的建议。

4

2 回答 2

3

我不认为你可以直接这样做。

对这个问题有几个回答可能会有所帮助,包括一个链接到一些解决问题的开源代码的回答。

于 2012-05-23T10:59:00.503 回答
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];
于 2012-05-23T11:00:48.027 回答