J'ai récemment migré un peu de code pour la nouvelle iOS beta 11 5 SDK.
Maintenant, je reçois un très déroutant comportement de UITableView. La tableview lui même n'est pas de fantaisie. J'ai personnalisé les cellules, mais dans la plupart, c'est juste pour leur hauteur.
Quand je pousse mon point de vue contrôleur avec tableview je obtenir un supplément d'animation où les cellules "faites défiler vers le haut" (ou éventuellement l'ensemble de la tableview image est modifiée) et descendre le long de push/pop de navigation de l'animation. Veuillez voir le gif:
J'ai créer manuellement tableview
en loadView
méthode et de configuration automatique des contraintes de mise en forme pour être égale à la pointe, derrière, en haut, en bas de la tableview de superview. Le superview est la racine de vue de vue-contrôleur.
- Vue-contrôleur de pousser code est très standard: self.navigationController?.pushViewController(notifVC, animated: true)
Le même code prévoit un comportement normal sur iOS 10.
Pourriez-vous svp me pointer dans la direction de ce qui est mal?
EDIT: j'ai fait un très simple tableview contrôleur et je peux reproduire le même comportement là. Code:
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: j'ai pu étroit question à ma personnalisation de UINavigationBar. J'ai une personnalisation comme ceci:
rootNavController.navigationBar.setBackgroundImage(createFilledImage(withColor: .white, size: 1), for: .default)
où createFilledImage
crée de la place de l'image avec la taille et la couleur.
Si je commente cette ligne je revenir à un comportement normal.
Je vous serais reconnaissant de toute réflexion sur ce sujet.