在UILabel绘制边框

时间:2012-01-16 14:56:11

标签: objective-c ios

嗯,我在UILabel的边框绘制方面遇到了一些问题。这是我的代码片段

CGRect frame = CGRectMake(10, 10, 320, 120);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.textColor = [UIColor greenColor];
label.font = [UIFont fontWithName:@"Verdana" size:12];
label.textAlignment = UITextAlignmentCenter;
label.text = @"Some text to display"; 
label.layer.backgroundColor = [UIColor cyanColor].CGColor;
label.layer.borderColor = [UIColor redColor].CGColor;
[self.window addSubview:label];
[label release];label=nil;

我有QuartzCore,我使用的是iOS4.3当我在sumulator中启动应用程序时,会显示文本,但不显示边框和背景颜色。 这有什么不对?

2 个答案:

答案 0 :(得分:8)

查看CALayer.h,我们发现borderWidth的默认值为0.0。

/* The width of the layer's border, inset from the layer bounds. The
 * border is composited above the layer's content and sublayers and
 * includes the effects of the `cornerRadius' property. Defaults to
 * zero. Animatable. */

@property CGFloat borderWidth;

为了显示边框,您必须将borderWidth设置为大于零的值。

您可以直接在标签上设置背景颜色:

label.backgroundColor = [UIColor cyanColor];

要设置边框,您需要设置宽度,可以这样设置:

label.layer.borderWidth = 2.0f;

设置边框宽度后,要设置标签上边框的颜色,您需要设置视图的图层边框,它使用CGColor,因此您必须这样做:

label.layer.borderColor = [UIColor redColor].CGColor;

如果你想绕过角落,你可以添加:

label.layer.cornerRadius = 10.0f;

您无需设置背景颜色。你真的只需要设置borderWidth和borderColor。

答案 1 :(得分:7)

label.layer.borderColor = [UIColor darkGrayColor].CGColor;
label.layer.borderWidth = 1.0;