Bagi siapa pun yang tertarik mereplikasi ini, cukup ikuti langkah-langkah ini:
- Buat proyek iOS baru
- Buka storyboard utama dan hapus default / inisial
UIViewController
- Seret yang baru
UITableViewController
dari Perpustakaan Objek
- Atur sebagai pengendali tampilan awal
- Beri makan tabel beberapa data uji
Jika Anda mengikuti langkah-langkah di atas, ketika Anda menjalankan aplikasi, Anda tidak akan melihat apa-apa, termasuk mengubah kotak centang Xcode menjadi "Extend Edges Under {Top, Bottom, Opaque} Bars" berfungsi untuk menghentikan baris pertama agar tidak muncul di bawah bilah status, Anda juga tidak bisa membahas ini secara terprogram.
Misalnya, dalam skenario di atas, yang berikut ini tidak akan berpengaruh:
// These do not work
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
Masalah ini bisa sangat membuat frustrasi, dan saya percaya ini adalah bug pada Apple, terutama karena itu muncul di pra-kabel mereka sendiri UITableViewController
dari perpustakaan objek.
Saya tidak setuju dengan semua orang yang mencoba menyelesaikan ini dengan menggunakan segala bentuk "Angka Ajaib" misalnya "menggunakan delta 20px". Pemrograman yang sangat erat seperti ini jelas bukan yang diinginkan Apple untuk dilakukan di sini.
Saya telah menemukan dua solusi untuk masalah ini:
Mempertahankan UITableViewController
adegan :
Jika Anda ingin menyimpannya UITableViewController
di storyboard, tanpa secara manual menempatkannya di tampilan lain, Anda dapat menyematkan UITableViewController
dalam UINavigationController
(Editor> Tanamkan Di> Pengontrol Navigasi) dan hapus centang "Shows Navigation Bar" di inspektur . Ini menyelesaikan masalah tanpa perlu penyesuaian tambahan, dan itu juga melindungi UITableViewController
adegan Anda di storyboard.
Menggunakan AutoLayout dan menyematkannya UITableView
ke tampilan lain (saya percaya ini adalah bagaimana Apple ingin kita melakukan ini) :
Buat yang kosong UIViewController
dan seret UITableView
di dalamnya. Kemudian, Ctrl-drag dari Anda UITableView
ke bilah status. Saat mouse mencapai bagian bawah bilah status, Anda akan melihat gelembung Autolayout yang bertuliskan "Top Layout Guide". Lepaskan mouse dan pilih "Vertical Spacing". Itu akan memberi tahu sistem tata letak untuk meletakkannya tepat di bawah bilah status.
Saya telah menguji kedua cara pada aplikasi kosong dan keduanya berfungsi. Anda mungkin perlu melakukan beberapa penyesuaian tambahan untuk membuatnya bekerja untuk proyek Anda.