Как создать представление списка в xamarin ios

Aswathy спросил: 28 апреля 2018 в 09:10 в: c#

Я хочу создать список с несколькими полями и изображением. Я использую представление таблицы для разработки списка, но я не получаю правильный дизайн.

Пожалуйста, помогите мне ...

Вот мой код

    class TableViewSource : UITableViewSource
     {
    List<Sample> tabledata;    public TableViewSource(List<Sample> items)
    {
        tabledata = items;
    }    public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        var cell = tableView.DequeueReusableCell("cell") as CustomVegeCell;
        if (cell == null)
        cell.UpdateCell(tabledata[indexPath.Row].CaseID
                , tabledata[indexPath.Row].Description
                , UIImage.FromFile("right_arrow.png"));
        return cell;
    }    public override nint RowsInSection(UITableView tableview, nint section)
    {
        return tabledata.Count;
    }    public override void WillDisplay(UITableView tableView, UITableViewCell cell, NSIndexPath indexPath)
    {        if (indexPath.Row == tabledata.Count - 1)
        {
            //Reload your data here
        }
    }
}

Вот мой ViewController.cs

    List<Sample> _itemdata;
    public ViewController(IntPtr handle) : base(handle)
    {
    }    public override void ViewDidLoad()
    {
        base.ViewDidLoad();        DAtaBinding();
        mainTable.Source = new TableViewSource(_itemdata);
    }    public override void DidReceiveMemoryWarning()
    {
        base.DidReceiveMemoryWarning();    }    public void DAtaBinding()
    {
        _itemdata = new List<Sample>() { { new Sample { CaseID="CQ964C",Description="Aswathy"} },
                                         { new Sample { CaseID="CQ964C",Description="Anu"}},
                                         { new Sample { CaseID="CQ964C",Description="Anu"}},
                                         { new Sample { CaseID="CQ964C",Description="Anu"}},                                         { new Sample { CaseID="CQ964C",Description="Anu"}},
                                         { new Sample { CaseID="CQ964C",Description="Anu"}},                              };
    }
}

Вот мой пользовательский tableviewcell

CustomVegeCell.cs

   public class CustomVegeCell : UITableViewCell
{
    UILabel headingLabel, subheadingLabel;
    UIImageView imageView;
    public CustomVegeCell(NSString cellId) : base(UITableViewCellStyle.Default, cellId)
    {
        SelectionStyle = UITableViewCellSelectionStyle.Gray;
        ContentView.BackgroundColor = UIColor.FromRGB(218, 255, 127);
        imageView = new UIImageView();
        headingLabel = new UILabel()
        {
            Font = UIFont.FromName("Cochin-BoldItalic", 22f),
            TextColor = UIColor.FromRGB(127, 51, 0),
            BackgroundColor = UIColor.Clear
        };
        subheadingLabel = new UILabel()
        {
            Font = UIFont.FromName("AmericanTypewriter", 12f),
            TextColor = UIColor.FromRGB(38, 127, 0),
            TextAlignment = UITextAlignment.Center,
            BackgroundColor = UIColor.Clear
        };
        ContentView.AddSubviews(new UIView[] { headingLabel, subheadingLabel, imageView });    }
    public void UpdateCell(string caption, string subtitle, UIImage image)
    {
        imageView.Image = image;
        headingLabel.Text = caption;
        subheadingLabel.Text = subtitle;
    }
    public override void LayoutSubviews()
    {
        base.LayoutSubviews();
        imageView.Frame = new CGRect(ContentView.Bounds.Width - 63, 5, 33, 33);
        headingLabel.Frame = new CGRect(5, 4, ContentView.Bounds.Width - 63, 25);
        subheadingLabel.Frame = new CGRect(100, 18, 100, 20);
    }
}

После добавления пользовательской таблицы tableview я получил исключение в методе GetCell.

Я хочу, чтобы этот проект для моего экрана


1 ответ

Есть решение
Cole Xia - MSFT ответил: 29 апреля 2018 в 06:03

Вам нужно новое наследование класса из UITableViewCell и создать в нем настраиваемые раскладки ячеек.

В этом сценарии вам понадобятся три метки и изображение стрелки и отрегулируйте их рамки как показано на рисунке.

Темурные здесь.

Пример здесь.

Aswathy ответил: 29 апреля 2018 в 10:50
Xia-MSFT Я попробовал вашу ссылку, но у меня есть исключение ...
Cole Xia - MSFT ответил: 29 апреля 2018 в 11:33
@Aswathy, что сообщение об исключении?
Aswathy ответил: 29 апреля 2018 в 01:59
Xia-MSFT System.NullReferenceException: < Тайм-аут превысил количество деталей исключения >
Aswathy ответил: 29 апреля 2018 в 03:41
Xia-MSFT Я решил свою проблему, это ошибка с моей стороны ..., спасибо за ваш ответ. Ваша ссылка решила мою проблему