読者です 読者をやめる 読者になる 読者になる

【7日目】アプリ開発のため勉強

アプリ開発

□内容

・Auto Layout

 

ConstraintsをAlign、PINのダイアログで設定したが

今回はコードからの設定を行った。

 

一部書籍で間違いがあり、ちょっとつまった。

 

書籍

view.removeConstraints(view.constraints())

だが

正しくは

view.removeConstraints(view.constraints)

だった。

 

Constraintsの設定例

        view.removeConstraints(view.constraints)

        

        view.addConstraint(NSLayoutConstraint(

            item: myView,

            attribute: NSLayoutAttribute.Top,

            relatedBy: NSLayoutRelation.Equal,

            toItem: view,

            attribute: NSLayoutAttribute.Top,

            multiplier: 1,

            constant: 40)

        )

 

 

上からの設定値を説明

 

item

拘束を設定する対象のビュー

attribute

上のビューのどの部分を拘束の起点にするか

relation

2つのビューの間の拘束の関係を示す。

attribute

設定する拘束の基準となるビュー

multiplier

位置やサイズを表すポイント数にかける値

view.removeConstraints(view.constraints)

というのは重要で、暗黙の拘束を削除する記述。

 

拘束を設定していない要素でも、自動的に拘束が付加される。

ビルド時と実行時に拘束が衝突して意図しないレイアウトになるので、

暗黙の拘束の削除を明示的に記述するというものらしい。

 

□所感

コードによるConstraintsの設定を行ったが、

画面で設定するよるなんとなく安心感があるかも。保守性と再利用もいいらしいし。

 

引き続きAutoLayoutの章は続く。

 

□メモ