content compression registance priorityを使う

はじめに

UILabelが横に2つ並んだ状態のcellがあり左側のcellの制約を優先すべき実装があったんですが、どう制約をつけていいのかわからずハマしました。

widthの制約があれば簡単なんですがどちらもUILabelも可変の時はcontent compression registance priorityを変更してあげることで解決できるようでうす。

解決方法

修正前

ハマった時の症状を再現しようとしたんですが全部後ろのlabelが勝つようになってしましました(私がぶち当たった現象としては前勝ち、後勝ちがランダムになってるものだったので優先順位値をつけていない時にはランダムになることもあると思います。)

制約は以下の通りです。基本はEqual8でLabelBのtrailingだけGreter Than Equalでつけています。

修正後

content compression registance priorityは高い方が優先されます。なので前勝ちにしたい場合はLabelAを選択デフォルトで750になっているものをあげることで優先されます。

参考文献

今更だけど正しく身につけよう『Content Hugging Priority』と『Content Compression Resistance Priority』