いくつかの情報を表示するようにパネルを設定しようとしています。自動レイアウトを希望どおりに機能させるのに問題があります。
これが私がやろうとしていることです:
私はheaderView、UIImageView、5つのラベルを持っています。ラベルを垂直に並べて、UIImageViewから8間隔で配置したいと思います。私はそれらを垂直に簡単に並べることができます:
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[headerView]-[acresLabel]-[addedLabel(==acresLabel)]-[typeLabel(==acresLabel)]-[zonesLabel(==acresLabel)]-[sceneLabel(==acresLabel)]-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(headerView, acresLabel, addedLabel, typeLabel, zonesLabel, sceneLabel)]];
しかし、それらを画像ビューから整列させることは、退屈で冗長なことを証明しています。
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[imageView]-[acresLabel]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(imageView, acresLabel)]];
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[imageView]-[addedLabel]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(imageView, addedLabel)]];
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[imageView]-[typeLabel]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(imageView, typeLabel)]];
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[imageView]-[zonesLabel]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(imageView, zonesLabel)]];
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[imageView]-[sceneLabel]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(imageView, sceneLabel)]];
これを行うためのより良い方法のように思えます。次に、画像ビューへの各ラベルに制約を設定します。最初の制約に追加しようとしNSLayoutFormatAlignAllCenterX
ましたが、すべての中心がコンテンツビューの中心Xに設定され、ラベルの中心Xが互いに整列していません。NSLayoutFormatAlignAllBaselineを垂直に使用すると、エラーとクラッシュが発生します。
データ(エーカー:'値')に対してこれを再度実行する必要があります。