需要使用 Firebase 在表格视图控制器 Xcode 7 中安排显示模式
Posted
技术标签:
【中文标题】需要使用 Firebase 在表格视图控制器 Xcode 7 中安排显示模式【英文标题】:Need to arrange the displaying pattern in table view controller Xcode 7 using Firebase 【发布时间】:2016-03-21 17:26:36 【问题描述】:我创建了一个表格视图控制器,它从 firebase 填充单元格。该表加载完美,但有一个小问题。每当添加新项目时,该项目都会显示在屏幕底部而不是顶部。如何安排我的项目,以便每当添加新项目时,它都会显示在顶部单元格上并显示在应用程序的顶部而不是底部,因此我不必向下滚动以查看新项目有什么已添加..
【问题讨论】:
示例代码可能会有所帮助:) 【参考方案1】:Firebase 没有自然顺序 - 您需要确定数据的排序方式并相应地设置结构。然后按该顺序检索数据。您可以按它们的键、值或优先级对它们进行排序。
例如:
您有一个博客应用程序,并且您总是希望按时间顺序列出博客:
post_0
timestamp: 1
post: "posted at 1am"
post_1
timeStamp: 13
post: "posted at 1pm"
post_2
timeStamp: 9
post: "posted at 9am"
当您阅读帖子节点时,按时间戳排序,它将按照 1、9、13 的顺序。
ref.queryOrderedByChild("timeStamp").observeEventType(.ChildAdded, withBlock: snapshot in
println("\(snapshot.value)")
)
如果您只想要最新的两个帖子,请使用限制查询。
let scoresRef = Firebase(url:"https://dinosaur-facts.firebaseio.com/scores")
postsRef.queryOrderedByValue().queryLimitedToLast(2).observeEventType(.ChildAdded, withBlock: snapshot in
println("post time \(snapshot.value)")
)
当然还有很多其他的选择:
将 firebase 数据读入数组,然后使用 NSSortDescriptors 进行降序排序。
按顺序读取 firebase 数据(因此它们是 1、2、3、4),其中 4 是最新帖子,并将每个数据插入到位置 0 的数组中。
4 最新帖子存储在数组中的位置 0
3
2
1
Firebase Reading Data 是理解查询和数据排序的非常好的参考。
【讨论】:
以上是关于需要使用 Firebase 在表格视图控制器 Xcode 7 中安排显示模式的主要内容,如果未能解决你的问题,请参考以下文章
Firebase - iOS Swift:使用从两个单独的子节点检索到的数据加载表格视图单元格
从 Firebase 填充数组传递 UITableViewCell 数据