C# 处理UITableView或UICollectionView单元格
我有一个使用自定义TableViewCell的UITableView。此TableViewCell包含一个可观察订阅(也可以是手势识别器),在释放单元格时需要释放该订阅 我不清楚何时应该显式调用表视图单元格上的Dispose。CellDisplayEnded仅在单元格由于滚动而不可见时调用,而不是在重新加载TableView或TableView位于popover上且popover被解除时调用。在上述任何情况下,只有当TableView本身被释放时,才会从终结器调用dispose。但我对添加清理代码犹豫不决,因为单元格已经在最终确定的队列中,并且其状态是不确定的。我从Xamarin那里找不到关于如何处理这种情况的指导C# 处理UITableView或UICollectionView单元格,c#,ios,uitableview,memory-leaks,xamarin,C#,Ios,Uitableview,Memory Leaks,Xamarin,我有一个使用自定义TableViewCell的UITableView。此TableViewCell包含一个可观察订阅(也可以是手势识别器),在释放单元格时需要释放该订阅 我不清楚何时应该显式调用表视图单元格上的Dispose。CellDisplayEnded仅在单元格由于滚动而不可见时调用,而不是在重新加载TableView或TableView位于popover上且popover被解除时调用。在上述任何情况下,只有当TableView本身被释放时,才会从终结器调用dispose。但我对添加清理代
我想知道在处理TableViewSource时是否应该处理所有可见的单元格。有什么想法吗?初始化自定义单元格时,将标记设置为-1&在GetCell方法中使用下面的代码进行检查,以便我们处理不可见的单元格&只显示可见的单元格
if (cell == null)
{
cell = new UITableViewCell(UITableViewCellStyle.Default, "identifier");
}
else
{
if(cell.ContentView!=null)
{
foreach (UIView subview in cell.ContentView)
{
if (subview.Tag == -1)
{
subview.RemoveFromSuperview();
}
}
}
}
初始化自定义单元格时,将标记设置为-1&在GetCell方法中使用下面的代码进行检查,以便我们处理不可见的单元格&只显示可见的单元格
if (cell == null)
{
cell = new UITableViewCell(UITableViewCellStyle.Default, "identifier");
}
else
{
if(cell.ContentView!=null)
{
foreach (UIView subview in cell.ContentView)
{
if (subview.Tag == -1)
{
subview.RemoveFromSuperview();
}
}
}
}
在中,Xamarin dev Rolf Bjarne Kvinge建议跟踪列表中的单元格,然后手动对其调用Dispose()。在中,Xamarin dev Rolf Bjarne Kvinge建议跟踪列表中的单元格,然后手动对其调用Dispose()。您找到解决方案了吗?我不能用同样的方法处理电池。你找到解决办法了吗?我不能用同样的方法处理细胞