7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】"Fixed width constraints may cause clipping"の警告を消す方法

Posted at

#はじめに

最近アプリを作成しており忙しくて投稿していなかったのですが、
ある程度の機能は実装できたので久しぶりに投稿したいと思います。

今回は、実際に私も遭遇した警告についてです。

とりあえず警告を全て消したいなと思ったので対処していたのですが、
その中でも解決に時間がかかった警告について共有いたします。

どなたかの解決に繋がりましたら幸いです。

#警告内容

タイトルにもありますが、表示される警告文は下記のものになります。

Fixed width constraints may cause clipping
スクリーンショット 2021-02-15 23.35.28.jpg

この警告は、Storyboardにオブジェクトを追加し、AutoLayoutでwidth固定の制約をつけると出現します。
内容を和訳すると固定幅の制約によりクリッピングが発生する可能性がありますとのことです。

あっているのかわかりませんが、widthの幅を固定にすると、
フォントの変化などにより文字列の横幅が変わるので固定幅にすると文字が切れる可能性がありますよ!
という感じの警告だと思っています・・・。

私が設定した固定幅は多少の変化など問題ないくらいの余裕があるはずですが、
なぜかこの警告が出てしまいます。
(定数ではなく変数だとテキストの内容が変わるのでそれが原因なのかな?)

原因はなんとなくわかったので、次に警告を消すための解決策についてです。

##解決策

結論から言いますと、固定幅をequalではなくGreater Than or Equalに変更すればOKです!

つまり横幅をイコール(=)から以上(≧)にするということです。

制約した横幅で収まりそうな場合はその固定幅で、
収まらなさそうな場合はその都度サイズを変更してくれる。

といった感じになります。

実際の変更手順は下記のようになります。

##手順

###パターン1
①StoryBoard右上の警告マークをクリックする
②表示されている警告の中から該当するものを選択する
スクリーンショット 2021-02-15 23.44.24.jpg
RelationをEqualからGreater Than or Equalに変更する
スクリーンショット 2021-02-15 23.45.40.jpg

###パターン2
①StoryBoardから警告が出ているオブジェクトをクリックする
②右メニューの上のロゴ?を三角定規に合わせる
スクリーンショット 2021-02-15 23.50.04.jpg
③少し下にスクロールしwidthの制約をダブルクリックする
スクリーンショット 2021-02-15 23.50.17.jpg
RelationをEqualからGreater Than or Equalに変更する
スクリーンショット 2021-02-15 23.50.32.jpg

上記のどちらかのパターンで解決できるはずです!

#さいごに

今回は、制約のwidthを超えることはないのでこのように解決しましたが、
本来ならしっかりと考えて変更するべき内容でもあるのかなと思います。

UI・UXは大事!というのはよく聞きますが、
こういった箇所の設計などは独学では少しハードルが高い気がします。

早く仕事でSwiftに触れたいものです・・・。

以上、最後までご覧いただきありがとうございました!

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?