gpt4 book ai didi

ios - 根据行数更改 UITableView 的大小

转载 作者:行者123 更新时间:2023-11-30 12:03:14 26 4
gpt4 key购买 nike

目前我正在使用 tableView 从搜索功能中检索数据。所以现在我希望 tableView 根据我们获得的数据量来缩小。

所以这是当结果很多并且填满了tableView的时候:

enter image description here

此时我们只得到两个结果。

enter image description here

所以我有使用

 tableView.tableFooterView = UIView(frame: CGRect.zero)

并成功隐藏了插图,但没有隐藏 tableView 的大小。是否有可能根据加载数据的单元格数量实际缩小 tableView 的大小?

最佳答案

将 TableView 的背景设置为 .clear 并将单元格的背景颜色设置为灰色可能比不断更新 TableView 的大小更容易。如果您希望触摸传递到 TableView 透明的基础 View ,您可以子类化 UITableView 并覆盖 point(inside:,with:) 就像:

class TransparentTableView: UITableView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
return self.indexPathForRow(at: point) != nil
}
}

如果单元格位于该位置,这会导致触摸事件注册为在表格 View 内部,从而有效地将表格 View 的大小更改为单元格占用的位置。

然后在 Storyboard或 xib 中将 UITableView 的类更改为您的子类(在我的示例中为 TransparentTableView)。

更新

point(inside:,with:) 确定触摸事件是否应被视为“内部”,从而由 View 处理。默认情况下将映射到 View 的边界。然而,对于我们来说,我们不想处理 TableView 中的所有触摸事件,而只处理单元格所在位置的触摸事件。要检查单元格是否位于特定位置,我们可以调用indexPathForRow(at:),如果它返回索引路径,我们就知道那里有一个单元格,如果它返回nil,我们就知道没有一个。因此,每当 self.indexPathForRow(at: point) != nil

时,我们都会考虑内部的一个点

关于ios - 根据行数更改 UITableView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955893/

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