嗯,我在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中启动应用程序时,会显示文本,但不显示边框和背景颜色。 这有什么不对?
答案 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;