Apakah sel-sel UITableView
acara di ruang kosong ketika Anda gulir ke bawah?
Jika demikian, maka masalahnya mungkin inset yang ditambahkan ke UITableView
karena pengontrol Navigasi yang Anda miliki di tampilan Anda. Inset ditambahkan ke tampilan tabel agar konten dapat ditempatkan di bawah bilah navigasi ketika tidak ada gulir yang terjadi. Ketika tabel digulir, konten akan bergulir dan ditampilkan di bawah bilah navigasi transparan. Perilaku ini tentu saja diinginkan hanya jika tampilan tabel dimulai langsung di bawah bilah navigasi, yang tidak terjadi di sini.
Satu hal yang perlu diperhatikan adalah bahwa iOS menyesuaikan inset konten hanya untuk tampilan pertama dalam hierarki tampilan jika itu UIScrollView
turunan atau turunan (misalnya UITableView
dan UICollectionView
). Jika hierarki tampilan Anda mencakup banyak tampilan gulir, automaticallyAdjustsScrollViewInsets
akan membuat penyesuaian hanya untuk yang pertama.
Berikut cara mengubah perilaku ini:
a) Pembuat Antarmuka
Saya tidak yakin versi Xcode mana yang memperkenalkan opsi ini (tidak menemukannya dalam catatan rilis), tetapi setidaknya tersedia dalam versi 5.1.1.
Sunting: Untuk menghindari kebingungan, ini adalah opsi ketiga yang disebutkan dalam komentar
b) Secara terprogram
Tambahkan ini ke yaitu viewDidLoad
(kredit untuk jawaban Slavco Petkovski dan komentar Cris R )
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c) Ini mungkin relevan untuk anak sekolah tua
Anda dapat memperbaikinya dengan menambahkan
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
Atau jika Anda menggunakan IB dan jika bilah navigasi tidak transparan (tidak dapat membedakan dari tangkapan layar)
- Pilih pengontrol tampilan
- Inspektur Atribut Terbuka
- Di opsi Tampilan Pengendali Perpanjang Tepi bagian hapus centang "Di Bawah Bilah Atas"