我有一个自定义ListView使用自定义viewCells与单选按钮.单击每个单选按钮时,ListView会动态调整其高度以隐藏/显示注释框.
在iOS平台上使用ForceUpdateSize时,单击单选按钮时ListView性能会迅速降低.该应用程序最终挂起并停止响应.
是否有替代ForceUpdateSize的替代解决方案在运行时动态扩展ListView行?
解决方法
无论何时需要更改ViewCell大小,都可以定义ViewCell Size Change事件
public static event Action ViewCellSizeChangedEvent;
在您的情况下,它应该由您的单选按钮触发.像这样称呼它:
ViewCellSizeChangedEvent?.Invoke();
然后,它将使用ListView渲染器更新iOS TableView.
public class CustomListVieWrenderer : ListVieWrenderer { public CustomListVieWrenderer() { WhatEverContentView.ViewCellSizeChangedEvent += UpdateTableView; } private void UpdateTableView() { var tv = Control as UITableView; if (tv == null) return; tv.BeginUpdates(); tv.EndUpdates(); } }