ios - 将项目添加到 UIScrollView 到顶部

标签 ios iphone objective-c uiscrollview

这就是我所拥有的。

我有一个 ScrollView ,我已经动态地填充了按日期值从上到下排序的 UIViews 项目。我还在我的 ScrollView 中添加了一个 UIRefreshControl 以实现“拉动刷新功能”。

因此,当用户执行“拉动刷新”时,旧项目将被添加到 ScrollView 的顶部。为此,我所做的是迭代 ScrollView 中的 subview ,并通过重新应用框架将它们向下推。

好吧,我想问的是,有没有更好的方法来做到这一点?

我真的无法想象必须迭代数百甚至数千个 View 并将它们一一向下推。

最佳答案

还有很多其他方法,我应该说是有效的方法。我给出了从最少到最好的选择的建议。

方法 1。我假设您可能有一个 View 数组,在其中创建一个循环并取出 View ,添加框架(通过动态计算其 Y 位置)并使其成为 scrollView 的 subview 。您需要做的是,当您获得一个新 View 时,将该 View 添加到该数组的索引 0 处,然后再次重新加载您的 ScrollView 。

方法 2(我更喜欢):用 Tableview 或 Collection View 替换 ScrollView 。这些是 Apple 提供的更高效、内存管理和资源管理的控件。 每次获得新 View 时,将其添加到其第一个索引并重新加载表或 Collection View 。

P.S:收藏 View 在 1OS 6.0 以下不可用。

我建议选择选项 2,因为选择选项 1 您必须面对许多其他问题,例如内存崩溃或性能问题。

关于ios - 将项目添加到 UIScrollView 到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317234/

相关文章:

ios - iOS 6 上的序列化问题

iphone - 有人有 iOS 上 vImage 处理的示例代码吗?

iphone - 在 TextField 中显示日期

ios - 在 iOS 中是否可以通过 WhatsApp 将文本发送到特定的联系号码?

ios - DataSource Pattern 与 UITableView 一起使用是依赖注入(inject)的示例吗?

ios - "loaded nib but the view outlet was not set"异常

ios - 如何使用 xib 创建自定义 ios-charts 高亮标记?

ios - iOS YouTube YouTube API上传视频,如何记录错误的userInfo?

ios - Google Place Request_Denied 恐怖

iphone - HmacSHA256 objective-c 加密