Saya baru saja memigrasi beberapa kode ke SDK iOS 11 beta 5 yang baru.
Sekarang saya mendapatkan perilaku yang sangat membingungkan dari UITableView. Tableview itu sendiri tidak terlalu mewah. Saya memiliki sel khusus tetapi sebagian besar hanya untuk tinggi mereka.
Ketika saya mendorong pengontrol tampilan saya dengan tampilan tabel, saya mendapatkan animasi tambahan di mana sel "gulir ke atas" (atau mungkin seluruh bingkai tampilan tabel diubah) dan ke bawah di sepanjang animasi navigasi push / pop. Silakan lihat gif:
Aku manual membuat tableview
diloadView
metode dan tata letak auto pengaturan kendala untuk menjadi sama dengan memimpin, mengikuti, atas, bawah SuperView tableview ini. Superview adalah tampilan root dari pengontrol tampilan.
Lihat pengontrol yang mendorong kode sangat standar: self.navigationController?.pushViewController(notifVC, animated: true)
Kode yang sama memberikan perilaku normal di iOS 10.
Bisakah Anda menunjukkan kepada saya apa yang salah?
EDIT: Saya telah membuat pengontrol tableview yang sangat sederhana dan saya dapat mereproduksi perilaku yang sama di sana. Kode:
class VerySimpleTableViewController : UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = String(indexPath.row)
cell.accessoryType = .disclosureIndicator
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let vc = VerySimpleTableViewController.init(style: .grouped)
self.navigationController?.pushViewController(vc, animated: true)
}
}
EDIT 2: Saya dapat mempersempit masalah ke kustomisasi UINavigationBar saya. Saya memiliki kustomisasi seperti ini:
rootNavController.navigationBar.setBackgroundImage(createFilledImage(withColor: .white, size: 1), for: .default)
dimana createFilledImage
membuat gambar persegi dengan ukuran dan warna tertentu.
Jika saya mengomentari baris ini saya mendapatkan kembali perilaku normal.
Saya sangat menghargai pemikiran apapun tentang masalah ini.
navigationBar.isTranslucent
untuk false
, jika tidak bekerja dengan baik.