Sök…


Skapa anpassad cell med Storyboard

Öppna Storyboard där du har din ViewController med TableView:

Lägg till prototypcell (om det inte finns någon cell till förut):

Anpassa cellen som du vill (i mitt fall finns det anpassad UII-bild och etikett):

ange bildbeskrivning här

ange bildbeskrivning här

Kom ihåg att ställa in höjden på cellen. För att göra det väljer du hela TableView och väljer fliken "Layout" i Egenskapsfönstret. På toppen av egenskaperfönstret ska du se "radhöjd" - lägg rätt värde:

ange bildbeskrivning här

Välj nu prototypcell igen. I fönstret Egenskaper skriver du klassens namn (det skapar kod bakom klassen för det). I mitt fall är detta "FriendsCustomTableViewCell". Därefter ange "Identifierare" för din cell. Som ni kan se är min "FriendCell". Det sista att ställa in är "Style" -egenskapen som anpassad. Fältet "Namn" bör vara tomt. När du klickar på "enter" efter att du har skrivit "Class" skapas koden bakom filen automatiskt:

ange bildbeskrivning här

ange bildbeskrivning här

Nu ska koden bakom för cellen se ut nedan:

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

I UITableViewSource måste du förklara cellIdentifier längst upp i klassen (i mitt fall är det "FriendCell") och i "GetCell" -metoden måste du kasta celler och ställa in data för dem:

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow