Recherche…


Créer une cellule personnalisée à l'aide de Storyboard

Ouvrez Storyboard où vous avez votre ViewController avec TableView:

Ajouter une cellule prototype (s'il n'y a pas de cellule ajoutée auparavant):

Personnalisez la cellule comme vous le souhaitez (dans mon cas, il y a UIImage et Label personnalisés):

entrer la description de l'image ici

entrer la description de l'image ici

N'oubliez pas de régler la hauteur de la cellule. Pour ce faire, sélectionnez l'intégralité de TableView et, dans la fenêtre Propriétés, sélectionnez l'onglet "Mise en page". En haut de la fenêtre des propriétés, vous devriez voir "Hauteur de ligne" - mettez la valeur appropriée:

entrer la description de l'image ici

Maintenant, sélectionnez à nouveau la cellule prototype. Dans la fenêtre Propriétés, tapez le nom de la classe (elle créera une classe code-behind pour elle). Dans mon cas, il s'agit de "FriendsCustomTableViewCell". Après cela, indiquez "Identifiant" pour votre cellule. Comme vous pouvez voir mon est "FriendCell". La dernière chose à définir est la propriété "Style" définie sur custom. Le champ "Nom" doit être vide. Une fois que vous cliquez sur "enter" après avoir tapé le fichier code-behind "Class", celui-ci sera automatiquement créé:

entrer la description de l'image ici

entrer la description de l'image ici

Maintenant, le code derrière pour la cellule devrait ressembler à ceci:

public partial class FriendsCustomTableViewCell : UITableViewCell
{
    public FriendsCustomTableViewCell (IntPtr handle) : base (handle)
    {
    }

    public FriendsCustomTableViewCell(NSString cellId, string friendName, UIImage friendPhoto) : base (UITableViewCellStyle.Default, cellId)
    {
        FriendNameLabel.Text = friendName;
        FriendPhotoImageView.Image = friendPhoto;
    }

    //This methods is to update cell data when reuse:
    public void UpdateCellData(string friendName, UIImage friendPhoto)
    {
        FriendNameLabel.Text = friendName;
        FriendPhotoImageView.Image = friendPhoto;
    }
}

Dans UITableViewSource, vous devez déclarer cellIdentifier en haut de la classe (dans mon cas, il s'agit de "FriendCell") et dans la méthode "GetCell", vous devez convertir les cellules et définir les données correspondantes:

string cellIdentifier = "FriendCell";

public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
    FriendsCustomTableViewCell cell = (FriendsCustomTableViewCell) tableView.DequeueReusableCell(cellIdentifier);
    Friend friend = _friends[indexPath.Row];

    //---- if there are no cells to reuse, create a new one
    if (cell == null)
    { cell = new FriendsCustomTableViewCell(new NSString(cellIdentifier), friend.FriendName, new UIImage(NSData.FromArray(friend.FriendPhoto))); }

    cell.UpdateCellData(friend.UserName, new UIImage(NSData.FromArray(friend.FriendPhoto)));

    return cell;
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow