【问题标题】:Need to arrange the displaying pattern in table view controller Xcode 7 using Firebase需要使用 Firebase 在表格视图控制器 Xcode 7 中安排显示模式
【发布时间】:2016-03-21 17:26:36
【问题描述】:

我创建了一个表格视图控制器,它从 firebase 填充单元格。该表加载完美,但有一个小问题。每当添加新项目时,该项目都会显示在屏幕底部而不是顶部。如何安排我的项目,以便每当添加新项目时,它都会显示在顶部单元格上并显示在应用程序的顶部而不是底部,因此我不必向下滚动以查看新项目有什么已添加..

【问题讨论】:

  • 示例代码可能会有所帮助:)

标签: ios xcode firebase controller


【解决方案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 是理解查询和数据排序的非常好的参考。

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多