(1) Lorsque je clique sur une annotation/une broche, mon animation fonctionne correctement. Une tableview glisse vers le haut. Lorsque je clique sur la carte (didDeselectAnnotationView), la vue de table saute à la position finale. MAIS: Lorsque je clique sur une cellule (didSelectRowAtIndexPath) l'animation glisse parfaitement vers le bas.animateWithDuration saute (parfois) à la position finale sans animation
Alors, quelle est la différence entre cliquer sur la carte et cliquer sur tableViewCell? Ils utilisent tous les deux la même fonction.
(2) Un autre point: Dans mon tableauAfficher du contenu dans mes cellules. Lorsque j'essaie de définir une image, l'image apparaît correctement, mais toutes les animations sont coupées. Après cela, chaque animation haut/bas saute.
Sooo je suis confus. Il n'y a pas d'erreurs Je lis: Lorsque animateWithDuration a un conflit ou qu'il y a des actions UI en même temps, animateWithDuration saute. D'accord. Mais comment puis-je gérer cela? Quelqu'un a-t-il un tutoriel ou des conseils généraux? Je ne sais pas où chercher mes erreurs.
J'ai essayé un peu avec dispatch_asycn mais rien ne fonctionne.
Merci de l'aide et désolé quand le anglais est pas parfait :)
Certains code: (1) L'animation:
func animateAllInformationAboutSingleDevice(up: Bool) {
// dispatch_async(dispatch_get_main_queue(), {
if up {
self.animationNSLayoutConstraint.constant += CGFloat(255)
} else {
self.animationNSLayoutConstraint.constant -= CGFloat(255)
}
UIView.animateWithDuration(Constants.animationTime, animations: {() -> Void in
self.tableViewController.layoutIfNeeded()
}, completion: {
(value: Bool) in
self.tableViewController.reloadData()
})
// })
}
La fonction de suppression:
func deleteAllInformationAboutVehicle(annotation: MKAnnotation) {
if let carAnnotation = annotation as? CarAnnotation {
if carAnnotation.itemId != "" {
setImageToDefaultImage()
//dispatch_async(dispatch_get_main_queue(), {
self.animateInformationScreen(false)
//})
}
}
}
(2) définition de l'image dans tableView:
dispatch_async(dispatch_get_main_queue(), {
cell.carImage?.clipsToBounds = true
if let image = globalCurrentImageOfCar {
cell.carImage.image = GUITools.cropToBounds(image)
}
})
J'ai appelé self.tableViewController.layoutIfNeeded() dans viewDidAppear() alternativ dans viewDidLoad() mais les deux ne fonctionnent pas. – kuzdu