Поиск…


Создание пользовательской ячейки с помощью раскадровки

Open Storyboard, где у вас есть ViewController с TableView:

Добавить ячейку прототипа (если ранее не было добавлено ячейки):

Настройте ячейку, как вы хотите (в моем случае есть пользовательский UIImage и Label):

введите описание изображения здесь

введите описание изображения здесь

Не забудьте установить высоту ячейки. Для этого выберите весь TableView и в окне «Свойства» выберите вкладку «Макет». В верхней части окна свойств вы увидите «высота строки» - поместите соответствующее значение:

введите описание изображения здесь

Теперь выберите ячейку прототипа еще раз. В окне «Свойства» введите имя класса (он будет создавать для него класс кода). В моем случае это «FriendsCustomTableViewCell». После этого укажите «Идентификатор» для вашей ячейки. Как вы видите, мой «FriendCell». Последнее, что нужно установить, - это свойство «Стиль», настроенное на пользовательский. Поле «Имя» должно быть пустым. После того, как вы нажмете «enter» после ввода «Class», файл с кодом будет автоматически создан:

введите описание изображения здесь

введите описание изображения здесь

Теперь код для ячейки должен выглядеть следующим образом:

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

В UITableViewSource вы должны объявить cellIdentifier в верхней части класса (в моем случае это «FriendCell»), а в методе «GetCell» вы должны бросать ячейки и устанавливать для них данные:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow