UITableView
下にスクロールすると、番組のセルは何もないスペースに表示されますか?
その場合、問題はUITableView
、ビューに表示されているナビゲーションコントローラーが原因で追加された差し込みである可能性があります。スクロールが発生していないときにコンテンツがナビゲーションバーの下に配置されるように、挿入図がテーブルビューに追加されます。テーブルがスクロールされると、コンテンツがスクロールし、透明なナビゲーションバーの下に表示されます。もちろん、この動作は、テーブルビューがナビゲーションバーのすぐ下で始まる場合にのみ必要ですが、ここではそうではありません。
注意すべきもう1つの点は、iOSがコンテンツインセットを調整するのは、ビュー階層の最初のビューであるか、それがUIScrollView
子孫である場合のみです(例:UITableView
およびUICollectionView
)。ビュー階層に複数のスクロールビューが含まれている場合、automaticallyAdjustsScrollViewInsets
では最初のスクロールビューのみが調整されます。
この動作を変更する方法は次のとおりです。
a)インターフェイスビルダー
このオプションが導入されたXcodeのバージョンはわかりません(リリースノートに記載されていませんでした)が、少なくともバージョン5.1.1では利用可能です。
編集:混乱を避けるために、これはコメントで言及された3番目のオプションでした
b)プログラムで
これをieに追加しますviewDidLoad
(Slavco Petkovskiの回答およびCris Rのコメントへのクレジット)
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c)これは古い学校の生徒に関係があるかもしれません
これを修正するには、
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
または、IBを使用していて、ナビゲーションバーが透明でない場合(スクリーンショットからはわかりません)
- View Controllerを選択します
- 属性インスペクターを開く
- ビューコントローラーオプションの[エッジの延長]セクションで、[トップバーの下]の選択を解除します。