2017-01-19 6 views
0

現在、表示されるラベルには、右上および右下にカスタム半径が設定されています。しかし、背景色はラベルが完全には満たされていません。UILabelレイヤの背景色部分的な塗り潰しが発生しない

レイヤーmaskToBoundsプロパティをtrueおよびfalseに設定しようとしました。 dateLabel.backgroundColordateLabel.layer.backgroundColorの両方を目的の濃い青色にプログラムで変更しようとしましたが、これはストーリーボードにデフォルトで設定されていて、ラベルの埋め込みに失敗しました。

@IBOutlet weak var dateLabel: UILabel! { didSet { 
    dateLabel.round(corners: [.topRight, .bottomRight], radius: 15, borderColor: UIColor.cyan, borderWidth: 3.0) 
    dateLabel.setNeedsLayout() 
}} 

override func viewDidLayoutSubviews() { 
    dateLabel.layoutIfNeeded() 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    dateLabel.layer.backgroundColor = UIColor.blue 
} 

enter image description here

は何ラベルが完全にそのビューを満たしていないとどのようなソリューションが提供された理由だろうか?

+0

ストーリーボードの背後または上に表示/ラベルがあるかどうかを確認します。または、プログラムで追加するかどうかを確認してください。 – ebby94

+0

背景色を追加するために書いたことを教えてください。 –

+0

@Malav Soni現在、UILabelはスタックビュー内にあります。エッジを丸めるコードはリンク[リンク](http://stackoverflow.com/a/35621736/5434541) – lifewithelliott

答えて

0

問題は間違いなくコーナー関数の使用です。サブレイヤーをUIlableに追加します。各サブレイヤーは独自の背景色を持っていますので、サブレイヤーを追加する関数やviewDidLoadを使用せずにコーナーを丸める別の方法サブレイヤの配列であるレイヤーlayer.sublayersのサブレイヤプロパティを反復処理し、それぞれに背景色を適用するか、この色割り当ての王を行うUIView拡張子(コーナー関数)に関数を追加し、その関数を呼び出します。

関連する問題