tomoyaonishiのブログ

iOSのことを中心に・・・その他もあるよ!

AutoLayoutでViewの横幅に追従して表示するが画面からはみ出さないようにする

AutoLayoutであるViewの横にボタンをおいて、ボタンをViewの横幅に追従させるような画面があると思います。

たとえば、画像のようにタイトルの横にお気に入りボタンをおいて、タイトルの長さによってお気に入りボタンも右にずれていくような場面です。

f:id:tomoyaonishi:20180827200049p:plain

このとき、タイトルの長さが長すぎると、ボタンが画面からはみ出してしまいます。

UILabelの横幅の最大値を決める方法でもいいかもしれませんが、シンプルにButtonの右端の制約を右端からみて、graterThanOrEqualにします。そして最低限確保したい右側のマージンとしてconstant: 8などとすると、タイトルが長くなりすぎたとき、ボタンが画面からはみ出さずに、右からのマージンを8あけて表示してくれます。

f:id:tomoyaonishi:20180827200613p:plain

結構、シンプルなのですが、最近まで気づかなかったのでメモでした。

一応ソースコードです。Storyboardでやってます。

github.com