Buscar..


Crear celda personalizada usando Storyboard

Abra el Guión gráfico donde tiene su ViewController con TableView:

Agregar celda prototipo (si no hay celda agregada antes):

Personaliza la celda como quieras (en mi caso hay UIImage y Label personalizados):

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Recuerda ajustar la altura de la celda. Para hacerlo, seleccione su TableView completo y desde la ventana de Propiedades seleccione la pestaña "Diseño". En la parte superior de la ventana de propiedades, debería ver el "alto de fila" - ponga el valor apropiado:

introduzca la descripción de la imagen aquí

Ahora seleccione la célula prototipo una vez más. En la ventana Propiedades, escriba el nombre de la clase (creará una clase de código subyacente). En mi caso esto es "FriendsCustomTableViewCell". Después de eso proporcione "Identificador" para su celular. Como puedes ver mi es "FriendCell". Lo último que se establece es la propiedad "Estilo" establecida en personalizada. El campo "Nombre" debe estar vacío. Una vez que haga clic en "entrar" después de escribir "Clase", se creará automáticamente el archivo de código subyacente:

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Ahora el código detrás de la celda debería verse a continuación:

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

En UITableViewSource tienes que declarar cellIdentifier en la parte superior de la clase (en mi caso es "FriendCell") y en el método "GetCell" tienes que lanzar celdas y establecer datos para ellos:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow