4 つの UILabels に制約を設定していますが、iphone 5s では正しく機能せず、6 および 6 plus では正しく表示されます。適切な制約を設定するには?
iPhone 5sでは右側に移動します。
最初のラベル、x 位置を設定し、次にラベル間のスペースを設定しました。次に、末尾のスペースから 4 番目のラベル <= を設定しました。しかし、適切な結果が得られません。
4 つの UILabels に制約を設定していますが、iphone 5s では正しく機能せず、6 および 6 plus では正しく表示されます。適切な制約を設定するには?
iPhone 5sでは右側に移動します。
最初のラベル、x 位置を設定し、次にラベル間のスペースを設定しました。次に、末尾のスペースから 4 番目のラベル <= を設定しました。しかし、適切な結果が得られません。
あなたの目標は、いくつかのリンクを含む 1 行のテキストを表示することであるように思われるので、おそらくすべてのテキストに対して単一のビューを使用する方がよいでしょう。NimbusやTTTAttributedLabelUILabel
など、そのサポート リンクに代わるサード パーティの代替物がいくつかあります。または、インスタンスをラベルのように機能するように構成し (スクロールと編集をオフにする)、ハイパーリンクを有効にすることができます。UITextView
ハイパーリンクを適切に処理できる単一のビューを使用すると、テキストが適切にレイアウトされていることを確認しながら、コードを簡素化し、制約の問題を解消できます。たとえば、テキストを次の行に折り返す必要がある場合、単一のビューでそれを実現する方がはるかに簡単です。
Massimo Polimeni の答えは、あなたが述べた質問に対する答えをかなりうまくカバーしています。テキストが並ぶように複数のラベルを配置する場合は、ラベル間にBaselines制約を使用します。
すべてのラベルを選択してから、垂直方向の中心の制約を追加します。
これで、ラベルが整列するはずです:
明らかに、配置を維持するために、x 位置またはマージンの制約を 1 つのラベルだけに追加します。
これで問題が解決するかどうか教えてください:)
EDIT 1:Calebが言うように、私の提案はラベルが同じフォントサイズの場合にのみ機能します。そうでない場合は、ベースライン制約のみを使用する必要があります。