iOSのUI実装でよく遭遇する細々とした問題への対処法
AndroidでいうところのVisibility.GONEをしたい(AutoLayout使ってる場合)
http://stackoverflow.com/questions/17869268/ios-equivalent-for-android-view-gone-visibility-mode
単にUIView.hideとしてもViewの領域そのものはポッカリ残る。
なので、強制的に高さ、または幅を0にしてGONEを再現する。
AutoLayoutで高さ、幅を制御するためには制約を追加・変更する必要がある。
Storyboard上で制約をインタラクティブに制御できないため、ViewControllerやらViewの中でこれらを操作する。
1 2 |
let heightConstraint = NSLayoutConstraint(item: self.targetView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 0) self.view.addConstraint(heightConstraint) |
- 制約のインスタンスを作る
- ViewControllerなどのViewにaddConstraintで制約インスタンスを追加する
- ちなみに不要な制約インスタンスを指定してremoveConstraintすれば該当する制約インスタンスが剥がれる
336px
336px
関連記事
関連記事はありませんでした