最後にAutoLayoutの実装方法について簡単にまとめてみた高階さん(株)ライトコードの高階(たかがい)です!StoryBoardでのAutoLayoutの実装はできるけど、コードで書いたことない!そんなあなた(私)のために、コードでのAutoLayoutの実装方法について簡単にまとめてみました。4.0AutoLayoutとは?iOSデバイスの多様な画面サイズにViewを適応させるレイアウトの仕組みのことです。座標やサイズを直接設定せず、相対的な値をViewに制約(Constraint)として設定し、表示します。コードでAutoLayoutを実装する方法は、以下の2つの方法があります。NSLayoutConstraintNSLayoutAnchor実際に書いて動かした方が早いので早速やっていきます!が、その前にコードでAutoLayoutを実装する際の注意点から。コードで実装するときに注意するポイント2点まず最初に注意して欲しいのが、必ずViewを配置(addSubView)してから制約を設定すること。注意点1配置前に制約を設定すると、実行時に以下のエラーでクラッシュします。constraint:注意点2もう一点は、translatesAutoresizingMaskIntoConstraintsをオフにすること。falseViewを配置する前に上の一行を書いちゃいましょう。ちなみに、この「translatesAutoresizingMaskIntoConstraints」というプロパティについてですが、AutoLayout以前に使われていた「Autosizing」というレイアウトの仕組みを、AutoLayoutに変換するかどうかを設定するフラグだそうです。高階さんデフォルトではtrueになっていますが、追加していくAutoLayoutの制約がAutosizingの制約とコンフリクトを起こすと期待通りの動作をしないことがあるので、新たに制約を追加する際には忘れずにfalseにしてください実装についてでは、早速それぞれの実装方法を見ていきましょう。今回は、比較のために以下のように、中央に100pt四方の赤いViewを表示させていきたいと思います。1.NSLayoutConstraintこちらは、NSLayoutConstraintクラスのイニシャライザを利用した方法です。イニシャライザの定義は、以下のようになっています。CGFloat)高階さん引数がてんこ盛りなのでぱっと見で分かりづらいですね。引数についてたくさんある引数について順に説明していきます。constantとなります。実際にコードを書いてみる!以下は、100pt四方のViewを画面中央に表示させるコードです。引数を色々といじってみた方が理解が早いと思うので、そちらをお試しください。NSLayoutAnchor次は、iOS9で追加されたNSLayoutAnchorクラスを利用して表示させる方法です。こちらは、NSConstraintよりも、かなり簡潔に書くことができます。実際にコードを書いてみる!NSLayoutConstraintクラスを利用して表示させたものと同じものを表示させるコードが以下になります。Y座標軸の中人を親Viewと合わせる制約を有効にする高階さん結構短くなりましたね!AnchorはViewの端や寸法を表すので、Attributeとほぼ同じです。引数についてAnchorの指定後にconstraintメソッドで制約を付与していますが、こちらのメソッドは制約の内容により引数が異なります。最後に制約を生成した後にisActiveプロパティをtrueにしていますが、こちらは生成した制約をレイアウト構築時に反映させるかどうかを制御するフラグになります。高階さんデフォルトでは、「false」となっており、「true」としない限りは制約が反映されないため、必ず制約の生成時にtrueに変更してください!最後にNSLayoutConstraintはさておき、NSLayoutAnchorに関しては、思っていたよりもシンプルで分かり易かったです。これなら、コードでのAutoLayoutも割と楽に書けそうですね。社長と一杯飲みながらお話してみたい方はこちらミツオカフリーランスエンジニア様の募集はこちらにゃんこ師匠その他、お問い合わせはこちらミツオカお気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!一緒に働いてくれる仲間を募集しております!ライトコードでは、仲間を募集しております!当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。rightcodeエンジニア大募集中!私たちライトコードでは、エンジニアを募集しております。私服大歓迎のカジュアルな職場なので、お気軽にご応募ください!また、フリーエンジニアの方も募集しております。