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
UITableViewControllerdari 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 UITableViewControllerdari 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 UITableViewControlleradegan :
Jika Anda ingin menyimpannya UITableViewControllerdi storyboard, tanpa secara manual menempatkannya di tampilan lain, Anda dapat menyematkan UITableViewControllerdalam 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 UITableViewControlleradegan Anda di storyboard.
Menggunakan AutoLayout dan menyematkannya UITableViewke tampilan lain (saya percaya ini adalah bagaimana Apple ingin kita melakukan ini) :
Buat yang kosong UIViewControllerdan seret UITableViewdi dalamnya. Kemudian, Ctrl-drag dari Anda UITableViewke 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.