2012-02-27 96 views
0

可能重复:
CALayer: add a border only at one side如何绘制一个UILabel边界

我需要以编程方式绘制的UILabel的左边框。 使用此代码将绘制标签周围的所有边框(顶部,左侧,底部,右侧)。

myLabel.layer.borderColor = [UIColor whiteColor].CGColor; 
myLabel.layer.borderWidth = 1.5f; 

是否有借鉴使用QuartzCore仅左边框的机会或者我需要添加一个子视图(如小重量和背景一个UIView)我的UILabel?

+2

http://stackoverflow.com/questions/7022656/calayer-add-a-border-only-at-one-side – matzino 2012-02-27 10:25:09

回答

2

这很简单。我已经做了一些类似的编程,在视图上添加“透明”形状(通过按钮显示背景色)。 15分钟的方法是:

  1. 创建适当的大小(CGRectMake(0,0,1.5f,myLabel.frame.size.height))和彩色
  2. 的一个UILabel标签添加到您的视图(这将剪辑UIlabel与cornerRadius等)
  3. 设置autoresizingMaskUIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight让左边框用myLabel调整并粘到左边

我认为就是这样。应该用很少的戏剧工作。如果你正在绘制数百或数千个,它可能会很慢,但对于一些标签,没有问题。

享受,

达明

+0

谢谢! 这是一个有趣的解决方案,但在链接问题之后,我认为创建一个CALayer会更容易,然后将其添加为子图层。如果您需要用类别(例如UILabel + Border)“扩展”UILabel类,则也更容易。再次感谢您的回复! – 2012-02-27 22:48:45

+1

我同意,抵消帧的链接解决方案更加巧妙,并且可以更好地扩展。这是我喜欢试图回答问题的一件事 - 我通常也学习一些东西。 – 2012-02-28 03:23:51