2015-12-04 11 views
6

固定サイズのUIViewにはUILabelが含まれています。 UILabelには動的テキストがあります。 UILabelがUIViewを含むよりも大きくならないようにするにはどうすればよいですか?iOS - AutolayoutでUILabelの最大幅を設定する

AutoLayoutを使用する前に、これは単にAdjustsFontSizeToFitWidthを使用するだけで簡単に達成できましたが、これ以上Autolayoutで動作させることはできません。

UILabelからUIViewにどのような制約事項を追加する必要がありますか?今は単にLeading Alignedです。

+3

幅にラベルのhorizo​​ntalcompressionResistense優先順位を作る<= superview.width –

答えて

4

UILabelcontentHuggingcontentCompressionResistance)のような特殊な方法がありますが、既に有効です。ラベルの幅を無効にするために必要なのは、スーパービューの幅に合わせて増やすことだけです。

NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:self.label attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.label.superview attribute:NSLayoutAttributeWidth multiplier:1.0f constant:0.0f];  
[self.label addConstraint:widthConstraint]; 
+0

質問のコメントは本当に良い、ただ一つのことを働きました:どのようにUILabelのフォントサイズを調整して、私が与えた最大幅に収まるようにすることができますか? –

+1

myLabel.adjustsFontSizeToFitWidth = YES; myLabel.minimumScaleFactor = .5f; これは私のために働いた!ありがとうTImur –

0

私は以下のように、左、上、右制約を追加します:

  • あなたのラベルを選択:ストーリーボードで

    enter image description here

    が、単にいくつかのクリックで制約の追加パネル(右下)で、追加する制約を選択します

enter image description here

0

ドラッグして画面の幅いっぱいに合わせてラベルのサイズを変更し、両方の側からいくつかのパディングを残すことができます。 4つの制約を設定する: 1)ラベルの高さ。 2)UIViewのトップスペース。 3)UIViewへの先頭スペース。 4)UIViewへの後続スペース。

そして最後に1000

0

スウィフト3と4

var widthConstraint = NSLayoutConstraint(item: label, attribute: .width, relatedBy: .lessThanOrEqual, toItem: label.superview, attribute: .width, multiplier: 1.0, constant: 0.0) 
label.addConstraint(widthConstraint) 
関連する問題