C'est à peu près mon problème. Je veux créer des cellules lisses arrondies dans une vue de tableau. Je remplace drawRect(frame: CGRect)
dans une classe TableViewCell
, mais lorsque la cellule est affichée, le périphérique (simulateur aussi) se fige pendant environ 1 seconde et le débogueur affiche une pointe de l'utilisation du processeur à 75%.UITableViewCell drawRect() Override rend le périphérique très lent (pic d'utilisation du processeur)
Non qu'il pourrait être d'une quelconque utilité, mais voici mon code:
override func drawRect(rect: CGRect) {
frame.origin.x = 10
frame.size.width -= 20
}
Ainsi est-il plus facile/beaucoup plus efficace/« juridique » (quelqu'un a dit la substitution drawRect est considéré comme « hacky ») façon de simplement rendre chaque cellule plus étroite que l'écran?
Le cadre de la cellule réelle sera géré par la tableview, vous pouvez ajouter vos propres sous-vues personnalisées à l'intérieur de 'cell.contentView'. Pourquoi utilisez-vous drawrect? inquiet pour la performance? La tableview est efficace pour la mise en cache et la réutilisation des cellules. Sauf si vous affichez des milliers de cellules sur l'écran, vous n'aurez pas besoin de vous soucier de l'efficacité du dessin. – thelaws
Oui, j'ai remarqué que la pointe du processeur ne se produit que sur la première cellule, ensuite elle fonctionne correctement. Je vais essayer d'utiliser une sous-vue. Postez-le comme une réponse, donc je vais le choisir. Merci! – Lawrence413