Changer UITableView en-tête de section sans tableView:titleForHeaderInSection
Je suis en train de modifier l'en-tête de titre pour un article dans un UITableView
lorsqu'une cellule à partir de cette section est sélectionné. tableView:titleForHeaderInSection
est déclenchée par l'application, ce qui n'aide pas. Je peux appeler reloadData
, mais le rendement s'en ressent, car l'application a pour recharger toutes les cellules visibles. J'ai aussi essayé d'utiliser un en-tête personnalisé, mais qui entraîne aussi certains problèmes de performances.
Est-il possible d'obtenir un handle vers le UILabel
que par défaut, la vue d'en-tête utilise et de modifier son texte manuellement?
Merci!
OriginalL'auteur | 2009-10-19
Vous devez vous connecter pour publier un commentaire.
Il ne semble pas être la norme API permettant d'accéder au système fourni par la section d'en-tête de la vue. Avez-vous essayé le plus ciblé
reloadSections:withRowAnimation
pour obtenir UIKit pour afficher le nouveau texte d'en-tête?Ce genre de problèmes de performance ont été vous voir à la coutume de la section d'en-tête de vues? Je doute que la série est beaucoup plus que juste un
UILabel
.OriginalL'auteur Sixten Otto
Appel
[tableView endUpdates]
peut apporter les résultats souhaités sans trop de performances.tableView:viewForHeaderInSection:
ettableView:viewForFooterInSection:
ne sont pas appelés alors vous avez besoin pour changer la vue de vous-mêmeOriginalL'auteur Scott McCammon
avec:
vous pourriez obtenir le point de vue de la Section i et puis "mettre à jour" manuellement
ceci fonctionne même si votre vue est juste le label auto-généré, mais vous devrez redimensionner vous-même.
donc, si vous essayez d':
vous permettra de définir le texte, mais vous ne seriez pas placer l'étiquette de taille. Vous pouvez obtenir la taille nécessaire de NSString à définir vous-même:
[auto.tableView headerViewForSection:i] toujours en donnant la valeur nil
je suppose que vous aurez nul si vous ne disposez pas d'un en-tête (c'est à dire les cellules statiques créés dans le storyboard et pas de texte "en-Tête"-Domaine de chaque Section).
si headerViewForSection retourne nil signifie vue d'en-tête n'est pas visible. Fonctionne très bien pour les tableaux dynamiques.
La seule solution que j'ai trouvé.
sizeWithFont
a été déprécié. Sinon, vous pourriez mettre en place de l'étiquette largeur de cadre à ses superview largeurOriginalL'auteur Dr. Azrael Tod
Vous pouvez définir le titre de la section en-tête de l'étiquette directement. Par exemple, pour définir le titre de l'article zéro:
Assurez-vous et dites à la section d'en-tête de visualiser les besoins de mise en page, sinon, le nouveau texte peut être tronqué. Aussi, la section des étiquettes sont généralement tous en majuscules.
OriginalL'auteur Ken Ryall
Depuis un UITableView ne pas mettre en file d'attente et de résorption de l'en-tête de section de vues pour les réutiliser, vous pouvez ainsi voir s'il est possible de stocker tous les en-tête de section points de vue dans la mémoire. Remarque vous devrez créer votre propre en-tête de section de vues avec l'arrière-plan et etc., pour ce faire, mais il vous permet un peu plus de souplesse et de capacité.
Vous pouvez également essayer de marquage de la section d'en-tête de vues (exige également de vous créer votre propre en-tête de section de vues) et de les télécharger à partir de la tableview en tant que de besoin.
OriginalL'auteur David Liu
C'est un FARCEUR, et je peux penser à beaucoup de raisons pourquoi il ne pourrait pas travailler, mais ne pourriez-vous pas faire une itération sur les sous-vues, et de trouver celui que vous cherchez? E. g.
OriginalL'auteur
L'une des solution serait de gérer externe de la matrice de pour plusieurs en-têtes de section contenant les références aux étiquettes et de les mettre à jour à l'extérieur.
OriginalL'auteur mangesh
Pour l'exhaustivité, la méthode que nous sommes tous à la recherche de est cette API privée nommé exactement ce que vous attendez:
par exemple:
Je ne recommandons pas l'utilisation de cela, cependant.
OriginalL'auteur zeroimpl