2017-02-20 4 views
0

私は、隣同士にこのラベルは必要なだけ幅を広げますか?真ん中の1が常にある間、

stackview

最初と最後のラベルを動的に可変長の言葉で埋めしようとしているような水平スタックビュー内の3つのラベルを持っています例えば「With with Swift!」という単語「with」を含むことになります。

単語が短いと変なように見えるので、各単語の間に余分なスペースを入れたくありません。ラベルをテキストに合わせるだけの幅にする方法はありますか?そうすれば、すべてが1つのラベルのように見えます(私は中間のラベルに小さなテキストを作成しています)。

+0

ストーリーボードのデフォルトのUILabelのような動作ではありませんか?この目的で自動レイアウトを使用することができます。 –

答えて

2

代わりにスタックビューのUIViewの内3つのラベルを追加し使用することができます。 そして、画像に示すように制約を設定します。あなたがこの問題を修正する自動レイアウトを使用することができます

enter image description here

enter image description here

+0

スタックビューにはどのような分布を与えますか? – MarksCode

+0

また、最初の単語が「コーディング」よりも長くても短くても、それはファンキーに見えますか? – MarksCode

+0

私はUIViewを使用する代わりにスタックビューを使用しないと言っています。 コーディングが短いテキストの場合は、それに応じて調整されます。編集された答え。 –

0

あなたは1つのラベルの代わりに、3つのラベル を取り、を取り、どのように自動レイアウトを使用する方法について

label.text= firstLabel.text + "with" + lastLabel.text 
+0

しかし、その後、「with」という単語を残りのテキストより小さくすることはできますか? – MarksCode

+0

はい、同じUILabelで異なるサイズのテキストを作成できます。そのためのNSLocalizedStringを参照し、次にlabel.text = NSLocalizedStringを実行します。 –

+0

うーん、おそらく私はこの解決策を次に行くだろう – MarksCode

1

としてラベルのテキストを設定することができますか? ラベルの間に0の横のスペースを与え、中央のラベルの幅の拘束を与えることができます。

1

uはラベル内のコンテンツに対して異なるフォントを持っているしたい場合は、NSAttributedStringが

let boldFontDict:[String: AnyObject] = [NSForegroundColorAttributeName : UIColor.black, NSFontAttributeName: <UI Font>] 

let 1stString = NSAttributedString(string: "Hello")  
let 2ndString = NSAttributedString(string: "hii", attributes: boldFOntDict) 

let finalAttrStr = NSMutableAttributedString(attributedString: 1stString) 

finalAttrStr.append(2ndString) 

myLabel.attributedText = finalAttrStr 
+0

アラインメントについては?最初の文字列は左揃え、2列目は中央、3文字目は右揃えです。あなたはそれを実装するソリューションを投稿できますか? –

+0

内容が動的であるため、3つのラベルの幅を管理することは困難です。 – Anuraj

+0

代わりに 'myLabel'を' center aligned'として整列させることができ、それぞれの属性文字列に異なるフォントサイズを与えることができます –

関連する問題