GetCell 方法忽略更改的值
GetCell method ignores changed values
我用 GetCell、RowsInSection 和其他所需方法设置了 UITableView对于我的 UITableView。这是我的代码:
using UIKit;
...
namespace ...
{
public partial class (className) : UIViewController, IUITextFieldDelegate, IUITableViewDataSource, IUITableViewDelegate
bool test = false;
public override void ViewDidLoad()
{
base.ViewDidLoad();
table.ReloadData();
table.DataSource = this;
table.Delegate = this;
test = true;
}
...
public nint RowsInSection(UITableView tableview, nint section)
{
return 2;
}
public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell = tableView.DequeueReusableCell("cell") as Cell;
bool selected = test;
cell.Setup(selected);
return cell;
}
}
我试图做的是在 GetCell 中设置单元格时检查变量的更改值。但是,似乎GetCell方法忽略了变量test的变化值,所以我的问题是如何访问变化后的变量在 ViewDidLoad.
修改test
后调用table.ReloadData();
,因为reloadData用于触发delegate中的所有方法包括GetCell
.
table.DataSource = this;
table.Delegate = this;
test = true;
table.ReloadData();
您的代码不是cell复用,请参考正确的方法here。
//register
table.RegisterClassForCellReuse (typeof(Cell), "cell");
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
//cell reuse
var cell = (Cell) tableView.DequeueReusableCell ("cell", indexPath);
if (cell == null) cell = new Cell("cell");
bool selected = test;
cell.Setup(selected);
return cell;
}
我用 GetCell、RowsInSection 和其他所需方法设置了 UITableView对于我的 UITableView。这是我的代码:
using UIKit;
...
namespace ...
{
public partial class (className) : UIViewController, IUITextFieldDelegate, IUITableViewDataSource, IUITableViewDelegate
bool test = false;
public override void ViewDidLoad()
{
base.ViewDidLoad();
table.ReloadData();
table.DataSource = this;
table.Delegate = this;
test = true;
}
...
public nint RowsInSection(UITableView tableview, nint section)
{
return 2;
}
public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell = tableView.DequeueReusableCell("cell") as Cell;
bool selected = test;
cell.Setup(selected);
return cell;
}
}
我试图做的是在 GetCell 中设置单元格时检查变量的更改值。但是,似乎GetCell方法忽略了变量test的变化值,所以我的问题是如何访问变化后的变量在 ViewDidLoad.
修改
test
后调用table.ReloadData();
,因为reloadData用于触发delegate中的所有方法包括GetCell
.table.DataSource = this; table.Delegate = this; test = true; table.ReloadData();
您的代码不是cell复用,请参考正确的方法here。
//register table.RegisterClassForCellReuse (typeof(Cell), "cell"); public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) { //cell reuse var cell = (Cell) tableView.DequeueReusableCell ("cell", indexPath); if (cell == null) cell = new Cell("cell"); bool selected = test; cell.Setup(selected); return cell; }