Swift 中的动态 UITableView

Posted

技术标签:

【中文标题】Swift 中的动态 UITableView【英文标题】:Dynamic UITableView in Swift 【发布时间】:2020-08-20 13:01:21 【问题描述】:

程序员朋友们好,

我正在构建一个应用程序,我想通过它向用户显示最近的商店。

但是,这需要在视图加载并显示后完成 TableView 设置 - 因此在用户授予位置权限之后。

可以这样做吗?如果是这样,我应该在哪里定义 TableView 协议函数,如“cellsForRowAt”和“numberOfRowsInSection”,因为这些参数只有在我获得 1) 获得该位置的许可和 2) 过滤最近的商店后才可用?

我希望问题很清楚,任何帮助将不胜感激。

【问题讨论】:

在用户授予您访问其位置的权限之前,您的数据源(用于表格)将包含零项。 tableView 可以很好地处理零项。当您被允许填充数据源时,只需重新加载表即可。 @Magnas 是对的。如果你只想加载你的表一次,那么只需在你的 didUpdateLocation 方法中分配你的 tableView 委托和数据源。因此,一旦您获得许可并且您的位置仅在这种情况下开始更新,您的表格视图将加载您的数据。我相信你能理解我的措辞。希望对你有帮助 谢谢,这两个答案都很有意义。我在哪里放置以下 "tableView.register(nib, forCellReuseIdentifier: "MainTableViewCell")" 、 "tableView.delegate = self" 和 "tableView.dataSource = self" 函数?我可以把它们放在 viewDidLoad 中吗? @Lyndon2309 你可以调用这个方法是viewDidLoad() @MohindraBhati 和 Magnas? 【参考方案1】:

当用户完成 1) 获得该位置的许可和 2) 过滤最近的商店时,这 2 件事只需调用 tableview.reloadData() 并且您的 tableview 将使用最新数据刷新和更新。

【讨论】:

以上是关于Swift 中的动态 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

使用动态tableView的tableViewCell中的动态collectionViewCell执行Segue With Identifier,swift

Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection

UITableView 单元格中的动态形状(Swift)

Firebase.google.com iOS 中的 Firebase 动态链接(Swift)

Swift 函数中的动态修饰符

Swift 中的动态 UITableView