首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从底部快速启动tableView (反向tableView)

从底部快速启动tableView (反向tableView)
EN

Stack Overflow用户
提问于 2014-10-01 18:44:39
回答 4查看 8.4K关注 0票数 3

是否有可能倒序一个tableView?我找了很多解决办法,但都没有用。

效果就像whatsapp聊天一样。

正常的tableView是:

代码语言:javascript
复制
----------
label 1
----------
label 2
----------
label 3
----------
empty
----------
empty
----------

scroll direction
   |
   |
   v

预期结果:

代码语言:javascript
复制
----------
empty
----------
empty
----------
empty
----------
empty
----------
label 3
----------
label 2
----------
label 1
----------

 scroll direction
      ^
      |
      |

谢谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-01 18:49:05

只要滚动到末尾,每次插入单元格时都执行同样的操作。

代码语言:javascript
复制
tableView.scrollToRowAtIndexPath(bottomIndexPath, atScrollPosition: .Bottom,
          animated: true)
票数 3
EN

Stack Overflow用户

发布于 2015-12-13 20:52:54

为了补充上面的答案,我包含了使用Parse加载、加载更多和刷新的方法。或者,您可以使用任何其他的提取方法来替换Parse。

第一次加载

代码语言:javascript
复制
    var query = PFQuery(className: "Comments")
    query.orderByDescending("createdAt")
    // limit the number of objects
    query.limit = objectsPerPage
    query.findObjectsInBackgroundWithBlock { (comments: [AnyObject]?, error: NSError?) -> Void in
        // clean array if loading for the first time
        self.objects.removeAll()
        for eachComment in comments!
            if self.objects.count < self.objectsPerPage
            {
                self.objects.append(eachComment as! PFObject)
            }
        }

        // reverse the array
        self.objects = self.objects.reverse()

        self.tableView.reloadData()
        self.tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: self.objects.count - 1, inSection: 0), atScrollPosition: UITableViewScrollPosition.Bottom, animated: false)

加载更多的

代码语言:javascript
复制
    // for the query
    //skip already loaded objects
    query.skip = self.objects.count; 
    // limit the number of objects
    query.limit = objectsPerPage
    // find the number of objects already loaded
    let numberOfAlreadyLoadedObjects = self.objects.count

    // add your  query.findObjects here

    // correct the order to update the array in the right order
    self.objects = self.objects.reverse()

    // add new posts
    for eachComment in comments!
            if (self.objects.count < self.objectsPerPage + numberOfAlreadyLoadedObjects)
            {
                self.objects.append(eachComment as! PFObject)
            }
    }

    // reverse again
    self.tableView.reloadData()

    let lastIndex = NSIndexPath(forRow: self.objectsPerPage - 2 , inSection: 0)
    self.tableView.scrollToRowAtIndexPath(lastIndex, atScrollPosition: UITableViewScrollPosition.Top, animated: false)

刷新

代码语言:javascript
复制
    // skip already loaded objects
    let numberOfAlreadyLoadedObjects = self.objects.count
    query.skip = numberOfAlreadyLoadedObjects

    // add your  query.findObjects here

    // correct the order
    self.objects = self.objects.reverse()

    // count the number of new objects found
    let newObjectsFound = comments?.count
    // append just the new ones
    for eachComment in comments!
    {
            if self.objects.count < numberOfAlreadyLoadedObjects + newObjectsFound!
            {
                self.objects.append(eachComment as! PFObject)
            }
     }
     // reverse
     self.objects = self.objects.reverse()

     self.tableView.reloadData()
     let lastIndex = NSIndexPath(forRow: self.objects.count - 1, inSection: 0)
     self.tableView.scrollToRowAtIndexPath(lastIndex, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
票数 2
EN

Stack Overflow用户

发布于 2020-03-19 07:47:00

解决方案是只找到反向数组并加载它,如下所示:

变量messagesArray =字符串

self.messagesArray = self.messageArray.reversed()

聊天应用程序

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26148367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档