Apu*_*a19 7 listview custom-renderer ios xamarin xamarin.forms
我有一个自定义ListView使用自定义ViewCells与单选按钮.单击每个单选按钮时,ListView会动态调整其高度以隐藏/显示注释框.
ForceUpdateSize在iOS平台上使用时,单击单选按钮时ListView性能会迅速降低.该应用程序最终挂起并停止响应.
是否有替代解决方案而不是ForceUpdateSize在运行时动态扩展ListView行?
无论何时需要更改ViewCell大小,都可以定义ViewCell Size Change事件
public static event Action ViewCellSizeChangedEvent;
Run Code Online (Sandbox Code Playgroud)
在您的情况下,它应该由您的单选按钮触发.像这样称呼它:
ViewCellSizeChangedEvent?.Invoke();
Run Code Online (Sandbox Code Playgroud)
然后,它将使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
它应该在继续使用Xaml的同时解决您的性能问题,而不是创建不需要的自定义ViewCell.