Xamarin.iOS
Crea y usa celdas de la tabla de prototipos personalizados en xamarin.iOS usando el guión gráfico
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):
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:
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:
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;
}