微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS上的ForceUpdateSize ListView问题

我有一个自定义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();
    }
}

它应该在继续使用Xaml的同时解决您的性能问题,而不是创建不需要的自定义viewCell.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐