0
0

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 1 year has passed since last update.

Xib、Storyboardを作成する上でのノウハウ

Last updated at Posted at 2022-06-05

この記事の対象者

  • Autolayout のチュートリアルや入門書を読んだけど、実務のレイアウト作成が作りづらいと感じている人
  • iOS のUI作成のガイドラインを作成したい人
  • 他の開発者が Autolayout をどう使っているか知りたい人

公式ドキュメント

Auto Layout Guide

Storyboardのノウハウ

  • StoryboardにViewが多いとXcodeで開くときに時間がかかる
    • Storyboardは分割して使用しよう
    • 可能ならXibにしよう
    • SegueをStoryboard上で使うと動作が重くなるので、画面が少ないアプリ以外ではやめておこう
    • 分割すると、Storybaordで何をやっているかわからなくなるが、動作が重いデメリットは大きい
  • UINavigationControllerが必要なときはStoryboardに配置しよう
    • コードでUINavigationControllerを制御するのは結構大変
  • Storybaordはコードレビューや差分を見るのが難しいので、gitで同時に2人以上で開発するのは回避しよう

View作成時のノウハウ

  • UIStackView を使おう
    • Content Hugging PriorityContent Compression Resistance Priority の違いを理解しよう
    • Constraints だけで作られている、名前と住所が表示されいるコンテンツに、性別が加わると Constraints を作り直さなければならない、UIStackView を利用すれば UILabel を追加するだけ対応できる
    • UIStackView で複数のマージンを持ちたい場合は、UIView を追加して、 Margin View としたほうが楽で見やすい
  • 名前を明示的に指定しよう、Constraints の関係がわかりやすくなる(SS)
    • Constraints に関連されている View が View という名前だとわかりにくい
  • 色はAssetsに登録しよう(SS)
  • UILabel の AttributeString を Xib で変更するとバグることがある
    • コードで変更するか、Xib をテキストファイルで開いて修正するしかない

うまくいかないときは

  • UIDebugViewでViewの構造を確かめる
  • hogeView?.translatesAutoresizingMaskIntoConstraints = false になっているか?
  • CAGradientLayerで透過しない
  • CAGradientLayerをコード上で変更していないか?

その他

  • Autolayoutの配置がおかしいとシミュレーターで正常に見えても、実機でレイアウトが崩れていることがある
    • 特にUIScrollViewとUIStackViewを組み合わせたときに発生する
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?