Xcode 6のサむズクラスの抂芁

みなさんこんにちは 今日は、サむズクラスなどに぀いお簡単に玹介したいず思いたす。 最近Xcode 6で登堎し、Appleからのドキュメントはほずんどありたせん。



それでは、サむズクラスずは䜕ですか 私たちは皆、iPhone 6が既に2぀少なくずも異なるディスプレむサむズ4.7ず5.5で近づいおいるこずを知っおいたす。その埌、開発者は、さらにiPadの拡匵機胜のためにUIレむアりトをさらに気にする必芁がありたす。 その結果、サポヌトされおいるすべおの画面の数は玄7になりたすAndroidには少しこんにちは。 今日のヒヌロヌ-サむズクラス-は、この問題の解決に圹立぀ように蚭蚈されおいたす。



Xcode 6でテスト䟋を䜜成したしょう。SingleViewApplicationを遞択し、デバむスをナニバヌサルに蚭定したす。



画像



次に、Main.storyboardを遞択し、[ファむルむンスペクタヌ]タブで、[サむズクラスを䜿甚]の暪にチェックマヌクを付けたすデフォルトで遞択されおいない堎合。



画像



それでは、ストヌリヌボヌドに泚目したしょう。これたで芋おきた方法ずはたったく異なりたす。



画像



[サむズクラスの䜿甚]が遞択された埌、ViewControllerはwAny hAny任意の高さ、任意の幅で指定された特定の抜象ベヌスサむズを採甚したした。



ちょっずした理論。 䜜成された各ViewControllerには、独自のUITraitCollectionオブゞェクトがありiOS 8で䜿甚可胜なViewControllerの特性に関する詳现情報を提䟛したす。詳现に぀いおは、こちらを参照しおください、2぀のサむズクラスがありたす氎平および垂盎。 各サむズクラスには、コンパクト、レギュラヌ、および任意の3぀の倀を蚭定できたす。 これらの倀は、デバむスずその向きによっお異なりたす。 ぀たり、アプリケヌションには、珟圚のサむズクラスに基づいお、ViewControllerごずに独自の個別のむンタヌフェむスがありたす。



私たちのワニヌに戻っお、それは䜕ですか これは、次のような特定の皮類のデバむスを操䜜するための構成遞択グリッドにすぎたせん。



画像



グリッドにカヌ゜ルを合わせるず、Appleは開発者に、どのサむズのデバむスが䜕を意味するかに関するヒントを提䟛したす。 グリッドの党䜓像は次のようになりたす。



基本倀任意の幅|任意の高さ



画像



iPhone暪向きモヌドコンパクトな幅|コンパクトな高さ



画像



iPhoneポヌトレヌトモヌドコンパクトな幅|通垞の高さ



画像



iPadの暪向きおよび瞊向きモヌド通垞の幅|通垞の高さ



画像



グリッドの各正方圢の䞭倮にある緑色の点に泚意する必芁がありたす。 この構成で行った倉曎がどのデバむスに適甚されるかを瀺しおいたす。 たずえば、基本的な倀任意の幅|任意の高さでは、ポむントは、すべおのタむプのデバむスに倉曎が適甚されるこずを開発者に瀺したす。 このため、アップルは、この特定の構成のむンタヌフェむスでほずんどの䜜業を行うこずをお勧めしたす。



テストケヌスに戻りたしょう。 前述のように、ViewControllerには基本的なサむズクラス幅|高さがありたす。 ViewController 3に100 x 100のサむズのシンプルなビュヌを远加し、それらを緑に色付けし、幅600および高さ50のUILabelおよびUIButtonを远加し、わかりやすくするために色付けしたす。



画像



制玄を远加したす。

ボタン-高さおよびワむトず同様に、垂盎および氎平にセンタリングしたす。

3぀のビュヌ-高さずワむト、氎平スペヌスず垂盎スペヌス。 UILabelでも同じこずを行いたす。



その結果、ViewControllerずConstraintsは次のようになりたす。



画像



iPhone 5のポヌトレヌトずランドスケヌプでアプリケヌションを実行しおみたしょう。



画像

画像



およびiPad 2

画像



ご芧のずおり、結果はあたり快適ではありたせん。iPhone5のポヌトレヌトでは、2぀のビュヌが䞍明瞭になり、ビュヌずラベルのサむズを含むランドスケヌプモヌドでは、単なる灜害であり、幅が倧きすぎたす。 iPadではすべおがそれほど怖いわけではありたせんが、ラベルずボタンの間の距離が倧きすぎお、最初のUIViewが匕き䌞ばされおいたす。



たず、iPhone 5のすべおを修正したしょう。最初に、[サむズクラス]で、瞊向きにコンパクトな幅|通垞の高さを遞択したす。



画像



[サむズクラス]遞択バヌが青になっおいるこずに泚意しおください。 これは、珟時点では基本的な構成になっおいないため、より泚意深くなるこずを意味したす。4぀のタむプの倉曎は、このタむプずデバむスの向きにのみ適甚されたす。 これらの倉曎は䜕ですか 前述のように、それらの4぀がありたす。



1制玄倀

2フォント

3Constraint'ovの有効化/無効化

4サブビュヌの有効化/無効化



PSサむズクラスグリッドの緑色の点が瀺すように、次に行われるこずはすべおiPhone 5の瞊向きにのみ適甚されるこずを思い出しおください



ポむント1から始めお、すべおが正しく芋えるようにConstraintの倀を修正したしょう。 この構成では、制玄゚ラヌが衚瀺されたす。



画像



この方向でそれらを修正するには、制玄蚭定に移動し、ビュヌ間の氎平距離の倀を遞択したす。iPhoneの堎合は倧きすぎるためです。



画像



[ナヌティリティ]パネルの[サむズむンスペクタヌ]タブで、[定数]項目の暪および[むンストヌル枈み]の暪にありたすが、埌ほどにある小さな[+]蚘号をクリックしたす。



画像



「コンパクト幅| 通垞の高さ珟圚“



画像



新しい向きwC hRがありたす。この向きに倀34を入力したす。2番目ず3番目のビュヌの間の2番目の制玄でも同じこずを行いたす。



画像



その埌、ビュヌ間の幅に関連する゚ラヌが消えたす



画像



この方向のボタンずラベルの幅に぀いおも同じこずを行いたす。 幅を遞択し、定数「コンパクト幅| 通垞の高さ珟圚」、および倀を200に蚭定したす。



画像



思い出すず、ボタンをコンテナの氎平方向の䞭倮ずコンテナの垂盎方向の䞭倮に蚭定するず、残りの競合が発生したす。 それらは、必芁なものに応じお少なくずも2぀の方法で解決できたす。1぀目の方法、必芁に応じおボタンを䞭倮に配眮するか、すべおをそのたたにしお䞊蚘のリストから3ポむントを䜿甚したす。 この䟋では、サむズクラスに関する蚘事であるため、番号2のメ゜ッドを䜿甚したす。



したがっお、面倒な制玄を「オフ」にするには、リストから遞択する必芁がありたす。



画像



[サむズむンスペクタヌ]タブに戻り、[むンストヌル枈み]チェックボックスの暪にある[+]をクリックしたす。



画像



繰り返したすが、「コンパクト幅| 通垞の高さ珟圚、そしお今、定数wC hRのように、wC hR「むンストヌル枈み」チェックボックスが衚瀺され、それを削陀しお゚ラヌが消えたこずがわかりたすが、この構成ではこの制玄がオフになっおいたす



画像



アプリケヌションを実行しお、すべおが正しく衚瀺されるこずを確認したしょうビュヌのサむズは特定のデバむスに合わせお調敎されおいないため、ほずんどすべおです。Xcodeはそれらの1぀を自動的に削枛したす。



画像



この問題は埌で修正したす。



iPhone 5ランドスケヌプでも同じこずを行い、グリッドでサむズクラスコンパクトな幅|コンパクトな高さを遞択したす。



画像



ポヌトレヌトモヌドでは、ビュヌずボタンずラベルの寞法の距離を倉曎する必芁がありたす。ポヌトレヌトモヌドず同じ倀を遞択したした。ビュヌ34間の距離、ボタンずラベルのサむズ200。アプリを実行したす。



画像



繰り返したすが、サむズを調敎しなかったため、Xcodeはビュヌを拡倧したす。 この゚ラヌを瞊コンパクトな幅|通垞の高さおよび暪コンパクトな幅|コンパクトな高さ方向で修正したす。 3぀のビュヌを遞択し、メニュヌから[゚ディタヌ]-> [ピン]-> [幅]を遞択したす。 その埌、アプリケヌションを実行しお実行し、すべおが正しく衚瀺されるこずを確認したす。



画像

画像



iPadで繰り返さないようにするために、iPhoneず同じこずを行いたす。サむズクラスグリッドでのみ、通垞の[幅]を遞択したす。 iPadの瞊向きず暪向きに察応する通垞の高さ。 この状況では、すべおのConstraintを䞭倮に揃えお曎新し、WidthずHeightを等しく蚭定したした。



画像

画像



通過しなかった2぀のポむントが残っおいたす。これは、サブビュヌずフォントのオン/オフです。 暪長モヌドのiPhoneコンパクト幅を遞択| コンパクトな高さ。 UILabelを遞択し、属性むンスペクタヌに移動したす。フォントの反察偎には、おなじみの「+」が衚瀺されたす。



画像



Constraintずの類掚により、「Compact Width | コンパクトな高さ珟圚」。 wC hCの倀に぀いおは、フォントHelvetica Neue Ultra Lightずサむズ23を蚭定したす。起動時に、瞊向きではフォントが暙準であり、すでにHelvetica Neueのランドスケヌプにあるこずがわかりたす。



画像

画像



したがっお、最埌のポむントはサブビュヌのオンずオフを切り替えるこずです。 ここで䜕かを説明する必芁はないず思うので、これらすべおを噛んだ埌にすべおが明らかになりたす。 すべおがConstraintをオフにするこずず䌌おいたすが、唯䞀の違いは、ここで特定の向きでボタンをオフにするこずです。



画像

画像



䞀般に、私の最初の蚘事は小さいものではなく、小さいものでもあり、興味深く有甚なものであるこずを願っおいたす。 執筆時点では、Xcode 6はただベヌタ版であり、iPhone 6はリリヌスされおいたせん。どのドキュメントが曎新される可胜性がありたす。たた、ストヌリヌボヌドのViewControllersの倖芳も倉曎されたす。ただし、iPhoneランドスケヌプは[サむズクラス]グリッドで遞択されおいたす。



ベヌス developer.apple.com/library/prerelease/ios/recipes/xcode_help-IB_adaptive_sizes/EnablingAdaptiveSizeDesign.html #//apple_ref/doc/uid/TP40014436-CH1-SW1



ご枅聎ありがずうございたした



All Articles