gpt4 book ai didi

ios - UITableViewCell 未在 "Live"搜索中自动调整大小

转载 作者:可可西里 更新时间:2023-11-01 01:39:31 24 4
gpt4 key购买 nike

一点背景知识

我正在为我的应用程序中的某些公告制作搜索功能。我将初始公告加载到 UITableView 中带有要显示的自定义单元格。在 viewDidLoad() 中实现动态单元格大小AnnouncementTableViewController 的方法我使用自动调整大小技术的类:

tableView.estimatedRowHeight = tableView.rowHeight
tableView.rowHeight = UITableViewAutomaticDimension

这非常适合显示具有不同高度的单元格。打电话tableView.reloadData()刷新单元格数据时效果很好。

我有一个不同的UITableView最初显示一个空白的表格 View 和一个 UISearchBar作为标题。我实现了 UISearchBarDelegate方法 searchBar(_:textDidChange:) ,执行我的搜索过滤器逻辑并将过滤后的公告附加到 filteredAnnouncements数组。

我调用 tableView.reloadData() didSet 中的方法对于 filteredAnnouncements .

问题

当我在搜索栏中键入时,单元格不会自动调整自身大小,实际上它们是默认高度。每个公告都有一个标题和正文,所以正文会被截断。

UITableViewCells cut off the body of the announcement

我尝试过的

UITableAutomaticDimension技巧似乎不适用于实时搜索(每次按键后都会更新)。我试过打电话 tableView.setNeedsDisplay() , tableView.setNeedsUpdatedConstraints , tableView.setNeedsLayout()didSet filteredAnnouncements 的观察者数组。

我试图覆盖 didMoveToSubview()自定义单元格类中的方法来根据旧的 stackoverflow 问题调用上面命名的那些不同方法,但都没有运气。

编辑:在下面回答了自己的问题

最佳答案

在表格上调用 beginUpdatesendUpdates 将强制它重新计算所有行的高度。

我认为如果您实现 UITableView 的行插入/删除方法而不是使用 reloadData.

关于ios - UITableViewCell 未在 "Live"搜索中自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31468277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com