2

4 つの UILabels に制約を設定していますが、iphone 5s では正しく機能せず、6 および 6 plus では正しく表示されます。適切な制約を設定するには?

ここに画像の説明を入力

iPhone 5sでは右側に移動します。

ここに画像の説明を入力

最初のラベル、x 位置を設定し、次にラベル間のスペースを設定しました。次に、末尾のスペースから 4 番目のラベル <= を設定しました。しかし、適切な結果が得られません。

4

2 に答える 2

1

あなたの目標は、いくつかのリンクを含む 1 行のテキストを表示することであるように思われるので、おそらくすべてのテキストに対して単一のビューを使用する方がよいでしょう。NimbusTTTAttributedLabelUILabelなど、そのサポート リンクに代わるサード パーティの代替物がいくつかあります。または、インスタンスをラベルのように機能するように構成し (スクロールと編集をオフにする)、ハイパーリンクを有効にすることができます。UITextView

ハイパーリンクを適切に処理できる単一のビューを使用すると、テキストが適切にレイアウトされていることを確認しながら、コードを簡素化し、制約の問題を解消できます。たとえば、テキストを次の行に折り返す必要がある場合、単一のビューでそれを実現する方がはるかに簡単です。

Massimo Polimeni の答えは、あなたが述べた質問に対する答えをかなりうまくカバーしています。テキストが並ぶように複数のラベルを配置する場合は、ラベル間にBaselines制約を使用します。

于 2015-05-21T15:20:53.500 に答える
0

すべてのラベルを選択してから、垂直方向の中心の制約を追加します。

これで、ラベルが整列するはずです:

明らかに、配置を維持するために、x 位置またはマージンの制約を 1 つのラベルだけに追加します。

これで問題が解決するかどうか教えてください:)


EDIT 1:Calebが言うように、私の提案はラベルが同じフォントサイズの場合にのみ機能します。そうでない場合は、ベースライン制約のみを使用する必要があります。

于 2015-05-21T14:58:00.143 に答える