Xamarin ios - 如何从静态TableView访问单元格

时间:2016-02-08 19:33:29

标签: ios uitableview ipad xamarin xamarin.ios

我的问题是如何在iPad设备上呈现我的tableview。尽管在故事板上设置了背景颜色,但在iPad上进行测试时,桌面视图始终具有灰色背景颜色。我搜索了这个网站,发现了很多解决方案:

已经尝试过这个建议

public override void viewDidLoad() {
 base.ViewDidLoad();

tableView.backgroundView = new UIView();
tableView.backgroundView.backgroundColor = UIColor.Clear;

}

我甚至试图覆盖tableview类中的GetCell函数,所以我可以通过访问单元格来改变contentView颜色,就像这样

cell.contentView.backgroundColor

但是从不调用GetCell函数。

修改

这是来自其中一个具有静态表格视图的屏幕的示例屏幕

screen shot

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

如果要通过覆盖GetCell来更改背景颜色,您希望在故事板中为自定义单元格指定标识符,并在TableViews TableSource中覆盖GetCell,如下所示。您还可以检查您的tableView源是否已在ViewDidLoad中设置为CustomTableSource:

tableView.Source = new CustomTableSource(this);

除非您使用的是IUITableViewDataSource,否则请检查您的弱代理和来源是否已设置:

tableView.WeakDelegate = this;
tableView.WeakDataSource = this;

覆盖GetCell:

public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
     var cell = tableView.DequeueReusableCell("CellIdentifier") as CustomCell;
     if (cell == null)
            cell = new CustomCell();
     cell.BackgroundColor = UIColor.Clear
     return cell;
}

您还必须覆盖RowsInSection:

public nint RowsInSection(UITableView tableView, nint section)
{
      return 7;
}

答案 1 :(得分:0)

在试图解决这个白色背景问题两天后,我找到了最适合我的解决方案:

要解决此问题,只需在AppDelegate.cs文件的FinishedLaunching函数中添加此行即可。这定义了应用程序中所有表格单元格的外观(如果您确实希望所有的tableview单元格都具有清晰的背景。)

    UITableViewCell.Appearance.BackgroundColor = UIColor.Clear;

现在可以在iPhone和iPad上正确呈现。