Je souhaite ajouter un en-tête de tableau (pas des en-têtes de section) comme dans l'application Contacts par exemple:
exactement comme ça - une étiquette à côté d'une image au-dessus du tableau.
Je veux que toutes les vues soient déroulantes afin que je ne puisse pas les placer en dehors du tableau.
Comment puis je faire ça?
iphone
ios
uitableview
Assaf b
la source
la source
public override UIView GetViewForHeader(UITableView tableView, nint section) { return headerView; } public override nfloat GetHeightForHeader(UITableView tableView, nint section) { return headerView.Frame.Height; }
Vous pouvez le faire assez facilement dans Interface Builder. Créez simplement une vue avec une table et déposez une autre vue sur la table. Cela deviendra la vue d'en-tête du tableau. Ajoutez vos étiquettes et votre image à cette vue. Voir la photo ci-dessous pour la hiérarchie des vues.
la source
Dans Swift :
la source
Vous pouvez également simplement créer UNIQUEMENT un UIView dans le générateur d'interface et faire glisser et déposer l'ImageView et UILabel (pour le faire ressembler à votre en-tête souhaité), puis l'utiliser.
Une fois que votre UIView ressemble à ce que vous voulez, vous pouvez l'initialiser par programme à partir du XIB et l'ajouter à votre UITableView. En d'autres termes, vous n'avez pas à concevoir la table ENTIÈRE dans IB. Juste l'en-têteView (de cette façon, la vue d'en-tête peut également être réutilisée dans d'autres tables)
Par exemple, j'ai un UIView personnalisé pour l'un de mes en-têtes de tableau. La vue est gérée par un fichier xib appelé "CustomHeaderView" et elle est chargée dans l'en-tête du tableau à l'aide du code suivant dans ma sous-classe UITableViewController:
la source
la source