Szukaj…


Utwórz niestandardową komórkę za pomocą Storyboard

Otwórz Storyboard, w której masz ViewController z TableView:

Dodaj prototypową komórkę (jeśli wcześniej nie dodano komórki):

Dostosuj komórkę, jak chcesz (w moim przypadku jest niestandardowy obraz UIImage i etykieta):

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Pamiętaj, aby ustawić wysokość komórki. Aby to zrobić, wybierz cały TableView iz okna Właściwości wybierz zakładkę „Układ”. W górnej części okna właściwości powinna być widoczna „wysokość wiersza” - wpisz odpowiednią wartość:

wprowadź opis zdjęcia tutaj

Teraz ponownie wybierz prototypową komórkę. W oknie Właściwości wpisz nazwę klasy (utworzy dla niej klasę kodową). W moim przypadku jest to „FriendsCustomTableViewCell”. Następnie podaj „Identyfikator” swojej komórki. Jak widzisz mój to „FriendCell”. Ostatnią rzeczą do ustawienia jest właściwość „Styl” ustawiona na niestandardową. Pole „Nazwa” powinno być puste. Po kliknięciu „enter” po wpisaniu „Class” automatycznie utworzony zostanie plik za kodem:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Teraz kod z tyłu komórki powinien wyglądać jak poniżej:

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

W UITableViewSource musisz zadeklarować cellIdentifier na szczycie klasy (w moim przypadku jest to „FriendCell”), aw metodzie „GetCell” musisz rzutować komórki i ustawiać dla nich dane:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow