Ricerca…


Crea una cella personalizzata usando Storyboard

Apri Storyboard in cui hai il tuo ViewController con TableView:

Aggiungi la cella prototipo (se prima non è stata aggiunta alcuna cella):

Personalizza cella come vuoi (nel mio caso c'è UIImage e Label personalizzati):

inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui

Ricorda di impostare l'altezza della cella. Per farlo seleziona l'intero TableView e dalla finestra Proprietà seleziona la scheda "Layout". Nella parte superiore della finestra delle proprietà dovresti vedere "altezza della riga" - inserisci il valore appropriato:

inserisci la descrizione dell'immagine qui

Ora seleziona nuovamente la cella prototipo. Nella finestra Proprietà digita il nome della classe (creerà per essa una classe code-behind). Nel mio caso questo è "FriendsCustomTableViewCell". Successivamente fornisci "Identificatore" per la tua cella. Come puoi vedere il mio è "FriendCell". L'ultima cosa da impostare è la proprietà "Stile" impostata su personalizzato. Il campo "Nome" dovrebbe essere vuoto. Dopo aver fatto clic su "invio" dopo aver digitato "Code", il file code-behind verrà creato automaticamente:

inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui

Ora il codice dietro per la cella dovrebbe apparire come di seguito:

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;
    }
}

In UITableViewSource devi dichiarare cellIdentifier all'inizio della classe (nel mio caso è "FriendCell") e nel metodo "GetCell" devi castare le celle e impostare i dati per loro:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow