Saya memiliki beberapa tabel (gaya dikelompokkan) di aplikasi iphone saya (hanya pada bagian layar dan ditambahkan dengan Interface Builder
, tidak disubklasifikasikan dari UITableViewController
) bahwa 80% dari waktu kecil dan akan cocok di layar. Ketika tabel pas di layar, saya ingin menonaktifkan pengguliran, untuk membuatnya sedikit lebih bersih. Tetapi jika tabel keluar dari layar (ketika baris kemudian ditambahkan ke dalamnya), saya ingin mengaktifkan gulir lagi (karena jika tidak Anda tidak dapat melihat konten itu.)
Apakah ada cara untuk melakukan ini? Sepertinya saya tidak bisa memahaminya. Saya tahu harus melakukan:
tableView.scrollEnabled = NO;
tapi saya tidak yakin di mana, atau jika saya harus menghitung ukuran objek tabel atau sesuatu untuk mendapatkan ini berfungsi.
Pembaruan : Inilah solusi yang akhirnya berhasil untuk saya:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Saya menjalankan kode ini setelah menelepon reloadData
di atas meja, dan menghitung ukuran yang tepat dan tampaknya berfungsi.
table.frame.size.height
adalah ukuran sebenarnya dari objek (Anda bisa melihatnya di Interface Builder
) ditampilkan di layar, sedangkan table.contentSize.height
adalah ketinggian: header, footer, dan tinggi setiap sel ditambahkan bersama-sama.