2012-01-16 16 views
2

UILabelでの境界線描画に問題があります。ここでは、コード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が含まれており、私はsumulatorテキストでアプリを起動すると、私は表示されなく境界線と背景色されたiOS4.3を使用しての私の抜粋です。 ここで何が間違っていますか?

答えて

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.layer.borderWidth = 2.0f; 

label.backgroundColor = [UIColor cyanColor]; 

境界線を設定するには、そのように行うことができる幅を設定する必要があります境界線の幅を設定したら、ラベルの境界線の色を設定するために、CGColorを使用するビューのレイヤーの境界線を設定するので、これを行う必要があります:

label.layer.borderColor = [UIColor redColor].CGColor; 
あなたは、背景色を設定する必要はありません

label.layer.cornerRadius = 10.0f; 

そして、あなたは角を丸めるしたい場合は、これを追加することができます。あなたは本当にborderWidthとborderColorだけを設定する必要があります。

+0

興味深い。私は境界線を表示したくない場所に取り組んでいます。私はラベルの周りに淡いボーダーを得ています。私のレイアウトは次のようになります:2つのUILabelは、背景色が白色のUIViewに配置されます。このUIView自体は、赤い背景を持つ大きなUIViewのサブビューです。かすかな輪郭が灰色で表示されます。 –

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