2016-08-12 10 views
0

1つのUIStoryboardに複数のUILabelがあり、同じcenterYを持つ場合、つまり、同じ行にあることを意味します。自動レイアウトを使用して別の画面に合わせるにはどうすればよいですか?これらのUILabelsのフォントサイズが同じであることを願っています。UIStoryboardの同じ行にある複数のUILabel

+0

あなたが同じビューに均等に広げたいと言っています(グリッドやリストのような)か? – brandonscript

+0

@brandonscriptはい、問題は、これらのラベルには個々の幅があるため、制約を設定する方法がわかりません。 –

+0

['UIStackView'](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/)をご覧ください。 – brandonscript

答えて

0

制約を追加する必要があります。制約を追加するにはいくつかの方法があります。

ストーリーボードに行くと、2本の垂直線の間に長方形が表示されます。ビューをクリックして、制約を追加したい場合は(追加したUIViewのように)、その四角形のボックスをクリックします。ビューの左、右、上、下に定数を追加するオプションがあります。ドロップダウンメニューをクリックすると、ビューを囲むビューのリストが表示され、そのビューに関連する制約を追加できるようになります。

制約を追加するもう1つの方法は、2つの垂直線の間にある三角形のボタンをクリックし、「欠落している制約を追加する」オプションを選択することです。自動レイアウトでは、自動的に追加する最適な制約を決定します。

制約を削除または変更するには、「サイズのインスペクタを表示」(ルーラーのように見えます)をクリックし、制約セクションに任意の制約を追加する必要があります。クリックして削除したり、編集することができます。

別のオプションは、プログラムで制約を加えている(下の迅速でスタックビューの画像ビューに制約を追加する例です):

let trailingConstraint = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.stackView, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: -5) 
let leadingConstraint = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.stackView, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 5) 

self.stackView.addArrangedSubview(imageView) 
self.stackView.addConstraint(trailingConstraint) 
self.stackView.addConstraint(leadingConstraint) 
+0

原因iPhone 6sに制約を設定すると、iPhone 5sでは制約があります。だから私はUILabelsをさまざまな画面で素敵に見せる方法を見つけたいと思います。 –

+0

画面サイズに応じてプログラムで追加したり、サイズを変更したり、制約を調整したりすることができます。 – plot

+0

ありがとう、私はプログラム的に使用しようとします。 –

関連する問題