Suche…


Erstellen Sie eine benutzerdefinierte Zelle mithilfe des Storyboards

Öffnen Sie das Storyboard, wo Sie Ihren ViewController mit TableView haben:

Prototypzelle hinzufügen (falls noch keine Zelle hinzugefügt wurde):

Anpassen der Zelle nach Belieben (in meinem Fall gibt es benutzerdefinierte UIImage und Label):

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Denken Sie daran, die Höhe der Zelle einzustellen. Wählen Sie dazu Ihre gesamte TableView aus und wählen Sie im Eigenschaftenfenster die Registerkarte "Layout". Oben im Eigenschaftenfenster sollte "Zeilenhöhe" angezeigt werden - geben Sie den entsprechenden Wert ein:

Geben Sie hier die Bildbeschreibung ein

Wählen Sie nun erneut die Prototypzelle aus. Geben Sie im Eigenschaftenfenster den Namen der Klasse ein (die Code-Behind-Klasse wird erstellt). In meinem Fall ist dies "FriendsCustomTableViewCell". Danach geben Sie "Identifier" für Ihre Zelle an. Wie Sie sehen können, ist meine "FriendCell". Als letztes zu setzendes Element wird die Eigenschaft "Style" auf custom gesetzt. Das Feld "Name" sollte leer sein. Wenn Sie nach der Eingabe von "Class" auf "Eingabe" klicken, wird automatisch eine Code-Behind-Datei erstellt:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Code hinter der Zelle sollte jetzt wie folgt aussehen:

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

In UITableViewSource müssen Sie cellIdentifier an der Spitze der Klasse deklarieren (in meinem Fall "FriendCell"), und in der "GetCell" -Methode müssen Sie Zellen umwandeln und Daten dafür festlegen:

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow