在滚动时有效调整 UITableViewCell 的大小

2023-12-19

大概的概念

我希望在用户滚动列表时动态调整 UITableViewCells 的大小,也就是说,使项目在到达列表底部时尺寸增大。

注意事项

这是一个每秒需要刷新多次的进程,因为调用如下:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

所以采取UITableView::ReloadData方法以便调用:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

因为这需要重新加载一堆额外的数据并极大地减慢系统速度。

Needs

  • 我将在屏幕上显示大约 10 个项目。
  • 在极端情况下,整个列表可能最多包含 100 项。
  • 系统需要平滑滚动。
  • 项目需要随着列表滚动而实时平滑地扩展和收缩。

常识

  • 与包含静态项目的列表相比,这肯定会对性能产生一些影响。

  • 有数百个线程处理“将单元格大小调整为文本长度”的简单情况,这不是我需要的,因为与每秒大量周期相比,这是一次性的事情。

可能的方法

  • 子类UITableView.
  • 有静电UITableView嵌套在一个UIScrollView.
  • 从头开始创建一个项目列表系统并且不使用UIScrollView at all.

废弃的方法

  • Call UITableView::ReloadData每个周期使得heightForRowAtIndexPath: 叫做。

So far

我已经编写了一个模块来计算项目大小的数学。

结论

我正在寻找解决这个问题的最快方法,但我会重新编码我自己的UITableView如果需要作为最后的手段。

谢谢你的时间。


经过大量测试后UITableView我还没有找到有效的方法。看起来UITableView可能会以不允许动态调整单元大小的方式进行优化。因此,制作自定义列表系统似乎是唯一的选择。我已经开始从事此类项目的工作UIScrollView.

大部分基本功能已经完成,但该项目目前处于搁置状态,因为我目前还有一个更重要的系统需要开发。如果您有兴趣参与这个项目,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在滚动时有效调整 UITableViewCell 的大小 的相关文章

  • 解析iOS如何通过相关PFObject中的属性查询对象?

    我正在编写一个 iOS 应用程序 并使用 Parse 在服务器端存储数据 我有用户 每个用户可以拥有一辆汽车 我试图弄清楚如何编写一个查询 使我能够获取所有拥有年份小于 2000 年并且具有某种颜色 比如说红色 汽车的用户 每辆汽车与用户都
  • iOS 7 UITableView:这是一个错误还是我的问题?

    请参阅附图 在 iOS 7 的表格视图中 UIKit 在附件视图和重新排序控件之间绘制一条细灰色垂直线 但是 当滚动表视图时 某些单元格中不会绘制这条线 附图中的单元格 1 2 和 8 中不存在该值 为什么是这样 我该如何修复它 我在 ip
  • 将数据从子模态 VC 传递到父视图控制器的最佳方法?

    将数据从子模式视图传递到父视图控制器的最佳方法是什么 我的 iPad 应用程序上有一个子模式登录屏幕 我想将用户信息传回父级分割视图控制器 我正在考虑使用 NSNotification 但我不确定这是否是将数据传递回父级的最简单 最有效的方
  • 苹果的外部配件(蓝牙)仅适用于 MFI 设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的学士论文的目标是通过蓝牙适配器将光串行设备连接到 iPad 目前我正在努力应对苹果的限制 我经常在网上看到我可以使用支持的配置文件 h
  • 自定义 UIPopoverController 视图背景和边框颜色

    是否可以更改弹出视图的边框颜色 导航栏样式 颜色和箭头样式 颜色 如果是这样 怎么办 如果有一些示例代码可用 那就太好了 iOS 7以上 可以更改backgroundColor of UIPopoverController这会影响导航背景颜
  • 使用 CLPlacemark、administrativeArea、iOS6/iOS7 更改内容

    我计划为 ios 7 制作一个应用程序 并且有管理区域地标属性的问题 对于 iOS6 我得到行政区域的全名 例如 加利福尼亚 但对于 iOS7 我得到 CA 的值 当情况如此变化时 这是一个问题 有什么方法可以控制这个输入 使其更加一致吗
  • iPhone触摸形状或原始数据

    有人知道是否可以检测触摸形状吗 也许通过获取原始触摸屏数据 我在这里找到了这个问题 答案 如何获取原始触摸屏数据 https stackoverflow com questions 789737 iphone raw touchscreen
  • 新的 iTunes 连接界面错误“您必须选择一个版本”

    当尝试将我的新应用程序提交到应用程序商店时 我注意到苹果已经更改了其网站界面 更新元数据和关键字并点击 提交审核 后 我收到错误 您必须选择一个版本 通过谷歌搜索 我没有找到答案 但是 我注意到 构建 标题旁边有一个加号按钮 您必须在其中选
  • 获取UIButton的UITableViewCell?

    我正在尝试使用UIButton 它位于自定义的UITableViewCell类称为GFHomeCell The GFHomeCell has a postID属性 我想在准备继续时发送该属性 我设置了一个在按下按钮时运行的方法 但是 在按下
  • 我可以在滚动时固定表格的 tableHeaderView 位置吗?

    我有一个表视图 并在其 tableHeaderView 上附加了一个 UISegmentedControl 如何使 tableHeaderView 固定 以便即使在滚动表视图时也始终可以在同一位置查看 UISegmentedControl
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • 关闭子级后,父级 UIViewController 方向不应更改

    假设我有三个 UI 控制器 A B C A 是我的根控制器 在 ShouldAutoRotate 方法中我返回 YES 我从A到B呈现ModalView B gt 在ShouldAutoRotate方法中我返回Portrait 然后从B我向
  • iOS TestFlight - 外部测试人员未收到新版本通知

    我已经向外部 TestFlight 用户提供了一个应用程序 他们已收到电子邮件并按预期安装了应用程序 他们有版本 1 0 Build 1 不过 我现在已经上传了一个新版本 版本 1 0 版本 2 这已获得批准 在外部测试页面中 我添加并选择
  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • Quickblox 聊天未进行身份验证

    我在我的应用程序中使用 Quickblox 进行一对一聊天 用户已经登录 但是当我尝试登录聊天时 出现以下错误 2014 03 31 12 42 09 532 MyChat 2175 3803 QBChat didNotAuthentica
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • 如何使用 UISlider 以及如何将滑块设置为特定值?

    我是第一次使用 UIslider 首先我想知道如果值的范围是 0 到 10 如何获取滑块位置的值 其次 我希望我的滑块设置为 5 个不同的值 如 1 2 3 4 5 slider should not set between the lab
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • 如何在 Safari 和 Native App 之间共享上下文?

    我有需要通过 Safari 设置一些上下文 上下文标记 然后从本机 iOS 应用程序读取该上下文 这样做的最佳实践是什么 到目前为止的一些想法 在 HTML 5 数据库中设置上下文 但我不确定这是否有效 因为该数据库可能只能从 Safari

随机推荐