SlideShare una empresa de Scribd logo
1 de 29
Auto Layout 入門
株式会社ミクシィ 武田祐一
Auto Layout とは
• iOS/OSX のアプリケーションでUIのパーツ
を配置するときの位置やサイズを指定す
る方法
• iOS6以降,OSX 10.7 以降で利用可能
• iOS5でビルドしたらクラッシュする原因の一つ
Auto Layout V.S. Auto Resizing
Auto Layout
• 親ビューや兄弟のビュー
に対しての制約で記述
• 親ビュー以外にも、兄弟
のビューなどが変化した
時にもリサイズされる
Auto Resizing (spring and struts)
• 上下左右のマージン、
幅と高さを指定
• 親ビューのサイズが変
わった時の配置の方法
なぜ今Auto Layoutか
• Auto Layoutの方がより記述力が高いので、view
をstoryboard, xib に寄せることができる
• iOS7の導入を見越して
Auto Layout の制約の種類
• Pin
– 親ビューの位置や、隣り
合うビューの位置から自
分の位置を設定する
– 幅や高さを絶対値で指定
することも可能
Auto Layout の制約の種類
• Align
– 隣り合うビューと位置を
揃えることができます
– 親のビューの中心にセン
タリングすることも可能
制約の例
UILabel
Top Space To Super View (=20)
Leading Space To Super View (=20)
親ビューからの位置で指定
制約の例
UILabel
Top Space To Super View (=20)
Leading Space To Super View (=20)
兄弟ビューの位置に合わせる
UILabel-2
Horizontal Space (=20)
Bottom Alignment
制約の例
UILabel
Top Space To Super View (=20)
Leading Space To Super View (=20)
ビューの終端側(右※、下)からの指定も可能
UILabel-2
Horizontal Space (=20)
Bottom Alignment
UILabel-3
Trailing Space To Super View (=50)
※イスラム語の右から左へ読む言語では終端は左になります
制約の例
UILabel
Top Space To Super View (=20)
Leading Space To Super View (=20)
ビューの終端側(右※、下)からの指定も可能
UILabel-2
Horizontal Space (=20)
Bottom Alignment
UILabel-3
Trailing Space To Super View (=50)
※イスラム語の右から左へ読む言語では終端は左になります
回転したとき、下と左のマージンを保てている
隣のラベルのサイズが増えた時に自動的に伸びる
Xcode / Interface Builder での設定方法
Xcode / Interface Builder での設定方法
設定されているAutoLayoutの制約
• 青はユーザーが設
定した制約
• 紫はIBが自動的に
設定した制約
※位置やサイズを一意に決めら
れない場合、IBが自動的に制約
を追加します
どのように制約が適用されるか
このような制約があるときに、ビューを回転
(親ビューをリサイズ)させるとどうなるでしょう
左右ともに、20ポイントを保つ
どのように制約が適用されるか
このような制約があるときに、ビューを回転
(親ビューをリサイズ)させるとどうなるでしょう
左右ともに、20ポイントを保つ
なぜ横幅が伸びるか
左右ともに、20ポイントを保つ
この制約を保ちつつ、親ビューの横幅が変化したら
TextViewのサイズが変化するしかない
どのように制約が適用されるか 2
• ボタンを2つ配置
• 制約
• ボタンAと親ビューの左
• ボタンBと親ビューの右
• ボタン間
→ボタンの幅が不定になるのでAの幅についてIBが自動で補正
どのように制約が適用されるか 2
回転するとボタンBが伸びる
どのように制約が適用されるか 2
ボタンBの最大幅を決めて、右端を余らせるには?
最大で200
ボタンBの最大幅を決めて、右端を余らせるには?
①伸びきった時の幅を設定(=203)
②ボタンの幅の下限を設定(≧135)
※この時、①より②が優先されるようにPriorityを設定する
ボタンBの最大幅を決めて、右端を余らせるには?
①ボタンの幅を設定(=200)
②ボタンの幅の上限
を設定(≦200)
※この時、①より②が優先されるようにPriorityを設定する
③マージンの下限
を設定(≧20)
ボタンBの最大幅を決めて、右端を余らせるには?
①伸びきった時の幅を設定(=203)
②ボタンの幅の下限を設定(≧135)
※この時、①より②が優先されるようにPriorityを設定する
Auto Layout なあんまりなところ
• レイアウトをソースから直接制御したとき、
制約が維持されない
– view.frame を直接触ると結局今までのようにすべてを
処理しないといけない
– UIViewのAnimationで使えない
※AutoLayoutの制約の実態はNSLayoutConstraintです。このクラスで
は、
やや視覚的な記法で制約を記述することができるので、frameの代わり
にこちらを用いればいいかも…
まとめ
• Auto Resizingと比べると、AutoLayoutの方が記述
量が減ってレイアウトをxib, storbyboardに集約
できそう
• とはいえ、iOS6以降でしか対応していない
• view.frameをソースから触ると、管理が煩雑化し
そう
まとめ
• 今日の内容については、githubにある mixi の
iOSTraning にまとめます!
時間押し
てます!!!!!

Más contenido relacionado

Destacado

Craig Silverman newsrw presentation
Craig Silverman newsrw presentationCraig Silverman newsrw presentation
Craig Silverman newsrw presentationrachelmcathy
 
Kronika Świetlicy 2010 2011
Kronika Świetlicy 2010 2011Kronika Świetlicy 2010 2011
Kronika Świetlicy 2010 2011sp11bialystok
 
初中信息技术教育教案 认识计算机硬件
初中信息技术教育教案 认识计算机硬件初中信息技术教育教案 认识计算机硬件
初中信息技术教育教案 认识计算机硬件jjelong
 
InvestinBelgium2011
InvestinBelgium2011InvestinBelgium2011
InvestinBelgium2011bdeelen
 
Vitar Corp Introduction Lta
Vitar Corp Introduction LtaVitar Corp Introduction Lta
Vitar Corp Introduction Ltajustinecross
 
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...Ruben LLumihucci
 
Nietas
NietasNietas
NietasVitati
 
The museum of liverpool
The museum of liverpoolThe museum of liverpool
The museum of liverpoolmarco anselmi
 
互联网产品经理向传统产品经理借鉴什么 阿光
互联网产品经理向传统产品经理借鉴什么 阿光互联网产品经理向传统产品经理借鉴什么 阿光
互联网产品经理向传统产品经理借鉴什么 阿光yixieshi
 
Group Weibo Account Analysis
Group Weibo Account AnalysisGroup Weibo Account Analysis
Group Weibo Account AnalysisYixuan Yang
 
ο μικρος αδελφος, μπουρέκας χρ.
ο μικρος αδελφος, μπουρέκας χρ.ο μικρος αδελφος, μπουρέκας χρ.
ο μικρος αδελφος, μπουρέκας χρ.Σταυριανάκη Νίκη
 
Module 2 Lesson 2
Module 2 Lesson 2Module 2 Lesson 2
Module 2 Lesson 2claytors
 
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...Hakan Turkkusu
 
reidpr.wikisym.201110
reidpr.wikisym.201110reidpr.wikisym.201110
reidpr.wikisym.201110reidpr
 

Destacado (19)

Craig Silverman newsrw presentation
Craig Silverman newsrw presentationCraig Silverman newsrw presentation
Craig Silverman newsrw presentation
 
6
66
6
 
Kronika Świetlicy 2010 2011
Kronika Świetlicy 2010 2011Kronika Świetlicy 2010 2011
Kronika Świetlicy 2010 2011
 
初中信息技术教育教案 认识计算机硬件
初中信息技术教育教案 认识计算机硬件初中信息技术教育教案 认识计算机硬件
初中信息技术教育教案 认识计算机硬件
 
InvestinBelgium2011
InvestinBelgium2011InvestinBelgium2011
InvestinBelgium2011
 
Vitar Corp Introduction Lta
Vitar Corp Introduction LtaVitar Corp Introduction Lta
Vitar Corp Introduction Lta
 
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...
Were Ancient Americans Familiar with Real Horses? - JOURNAL OF BOOK OF MORMON...
 
Nietas
NietasNietas
Nietas
 
Republika srbija
Republika srbijaRepublika srbija
Republika srbija
 
6
66
6
 
전규희
전규희전규희
전규희
 
The museum of liverpool
The museum of liverpoolThe museum of liverpool
The museum of liverpool
 
互联网产品经理向传统产品经理借鉴什么 阿光
互联网产品经理向传统产品经理借鉴什么 阿光互联网产品经理向传统产品经理借鉴什么 阿光
互联网产品经理向传统产品经理借鉴什么 阿光
 
Group Weibo Account Analysis
Group Weibo Account AnalysisGroup Weibo Account Analysis
Group Weibo Account Analysis
 
Contaminacion de aire
Contaminacion de aireContaminacion de aire
Contaminacion de aire
 
ο μικρος αδελφος, μπουρέκας χρ.
ο μικρος αδελφος, μπουρέκας χρ.ο μικρος αδελφος, μπουρέκας χρ.
ο μικρος αδελφος, μπουρέκας χρ.
 
Module 2 Lesson 2
Module 2 Lesson 2Module 2 Lesson 2
Module 2 Lesson 2
 
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...
Nereye gideceğini bilmiyorsan, hangi yolu seçtiğinin hiç bir önemi yok...
 
reidpr.wikisym.201110
reidpr.wikisym.201110reidpr.wikisym.201110
reidpr.wikisym.201110
 

130624 auto layout