ios - UITableView 上的前卫滚动 - iOS

标签 ios uitableview swift parse-platform

我正在制作一个从解析数据库填充 TableView 的应用程序。问题是每当我滚动时都会有一点滞后。通过一些搜索,我开始意识到问题出在 cellForRowAtIndexPath() 函数中,我在该函数中查询数据库以获取该单元格标签所需的数据。我必须查询那里的数据库,因为我使用单元格的位置来索引我的消息数组,以便获取正确的消息。这是我的 cellForRowAtIndexPath() 函数的主要内容:

    if (path.row < messagesArray.count) {
        var message = messagesArray[path.row]
        var dateFormat = NSDateFormatter()
        var query = PFQuery(className: "Messages")
        query.whereKey("messageID", equalTo: message.messageID)
        var first = query.getFirstObject()

        if (message.senderID == loggedInUserID) {
            cell.nameLabel?.text = "I said"
        } else {
            queryO?.whereKey("objectId", equalTo: message.senderID)
            var second = queryO?.getFirstObject()
            var name = second!.objectForKey("FIRST") as! String
            var middle = second!.objectForKey("MIDDLE") as! String?
            var last = second!.objectForKey("LAST") as! String

             if (middle != nil) {
                 cell.nameLabel?.text = name + " " + middle! + " " + last
              } else {
                  cell.nameLabel?.text = name + " " + last
              }
        }

        cell.messageLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
        cell.messageLabel?.text = message.messageText

        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "MM/dd/yyyy 'at' h:mm a" // superset of OP's format
        let str = dateFormatter.stringFromDate(first!.objectForKey("TIME") as! NSDate)

        cell.senderLabel?.text = str
    }

有什么想法吗?

最佳答案

我最终所做的是将查询放在函数之外并在 viewDidLoad() 中运行它,这极大地提高了速度。谢谢你们的帮助:-)

关于ios - UITableView 上的前卫滚动 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679684/

相关文章:

objective-c - 重复 NSTimer 锁定 UI 线程

ios - Xamarin 构建代理未在 mac 错误上运行

iphone - 是否可以创建一半仅与 iphone 兼容而其他部分通用的应用程序?

ios - Swift - 如何将两个 View Controller 链接到一个容器 View 中并使用分段控件在它们之间切换?

uitableview - 将 UITableViewDataSource 放入泛型类时出现 NSInvalidArgumentException

ios - 如何在 swift iOS 中清除惰性变量的值?

variables - Swift 中的多变量赋值

ios - 在 iOS 上使用 Table View 作为 segue 按钮

ios - UITableViewCell 的 detailTextLabel 没有使用所有可用空间

ios - DateFormatter 返回时区的意外日期