Swift 3中UITableView中的行数未知

时间:2016-10-20 07:45:38

标签: swift uitableview cell

我想创造"很长时间"有新闻的表,但我不知道有多少新闻服务器存在。 1个单元格= 1个新闻。当用户滚动他的表时,我将动态添加带有新闻的单元格。 我通过捆绑获得新闻(前5,后5,......)。

设置行数的最佳方法是什么?

func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int
    {
        return ???
    }

2 个答案:

答案 0 :(得分:2)

取决于您希望如何从服务器获取新闻:

如果您在一个请求中获取所有数据(整个新闻)(可能这不是您想要实现的),您应该返回新闻数组的数量 - 某些方法,您应该有一个包含的数组新闻模式 - :

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        // if true, that means you reached the last row
        if indexPath.row == new.count - 1 {
            // request the server for getting the next bundle
            // ...

            // append responsed data to news array
            // ...

            // call tableView.reloadData()
            tableView.reloadData()
        }
    }

如果您通过捆绑包获取新闻(让我们先说十,然后说第二个......),您需要检查一下表视图是否已到达最后一个单元格,以便调用服务器以获取下一个一捆新闻,您可以查看:

{{1}}

希望这会有所帮助。

答案 1 :(得分:-1)

首先,你需要一个网络服务连接或ssh来了解你有多少新闻,你可以获取新闻和使用。

var fetchedNewsCount: Int?


func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int
{
    return self.fetchedNewCount
}