[xcode] TableView上部にボタンを置きたいのに変なマージンが挿入されてしまう件
ボタンを常に画面の上に表示させるために
ボタンの直下にTableViewを配置、AutoLayoutでボタンとの距離を0にしたが、何故か変なマージンが入り込んで、スクロールするとTableViewのセルが上まではみ出る現象が、、
↑の画像で青丸がボタン(横幅いっぱい)、そのすぐ下に「iPhone」セクションが入りされてほしいのに謎のマージンが、、、それもスクロールするとセクションのセルが入り込む。
解決方法:
原因としてはiOS7から実装されたすりガラス機能(上のナビゲーションバーの下にすりガラスみたいに下のコンテンツが映り込む機能)が邪魔している様子
ViewControllerの「Adjust Scroll View Insets」をOFFにする
これだけではTableViewがボタンを無視して、ナビゲーションバー直下から始まってしまうので、AutoLayoutでボタンの縦幅のマージンを設定した
↑とりあえず、想定通り
追記、Adjust Scroll View InsetsをOFFしなくても下記コードでもOKの様子
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)