【问题标题】:Outlets in Xamarin custom TableViewCell are nullXamarin 自定义 TableViewCell 中的插座为空
【发布时间】:2016-05-24 19:58:31
【问题描述】:

我正在尝试使用自定义 UITableViewCell。我能够让单元格实例化,使其不为空。但是,单元格中的所有 UILabel 出口都为空。因此,我得到一个空指针异常。

这类似于iOS custom TableViewCell class subviews return nullLabel in custom cell is null when populating UITableViewController。然而,这两种解决方案都没有解决我的问题。他们建议确保标识符匹配,它确实如此。他们还告诉我注册单元格以供重复使用,我也这样做了。

我已确保单元格的 Xib 文件中的标识符与我正在使用的标识符相匹配。

在我的源类中:

public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
    tableView.RegisterClassForCellReuse(typeof(BoardListCell), new NSString(BoardListCell.Key));
    var cell = (BoardListCell) tableView.DequeueReusableCell(BoardListCell.Key);
    if (cell == null) 
    {
        var nib = UINib.FromName(BoardListCell.Key, NSBundle.MainBundle);
        cell = (BoardListCell)nib.Instantiate (null, null) [0];
    }

    cell.setData("top", "not top"); //Sample data
    return cell;
}

在我的 BoardListCell 类中:

public partial class BoardListCell : UITableViewCell
{
    public static readonly UINib Nib = UINib.FromName ("BoardListCell", NSBundle.MainBundle);
    public static readonly NSString Key = new NSString ("BoardListCell");

    public BoardListCell() : base()
    {

    }

    public BoardListCell (IntPtr handle) : base (handle)
    {

    }

    public void setData(String top, String bottom)
    {
        exp.Text = top;
        playTime.Text = bottom;
    }
}

当我调试时,正在创建单元格。但是,它的出口是空的。如果我在构造函数中实例化它们,我不会得到错误,但这显然违背了在 xcode 中制作原型的目的,因为它会消除布局等。

【问题讨论】:

  • 我也遇到了同样的问题,你能解决吗?
  • 仍然没有答案?

标签: ios uitableview xamarin xamarin.ios


【解决方案1】:

我遇到了与上述相同的问题。我的解决方案是删除对TableView.RegisterClassForCellReuse(typeof(YourCustomeTableCell), "YourTableCellName");的调用

如果您在 Xcode 设计器中创建了 Cell,则无需注册 Cell。

希望这可以帮助任何仍然遇到此问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2015-11-27
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多