swift - 为重复数据和无数据创建页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift - 为重复数据和无数据创建页面相关的知识,希望对你有一定的参考价值。
我需要ViewContoller计划的建议。我应该使用结算地址创建一个视图。根本没有地址或某些地址。如果没有人,应该只有一个按钮“添加新”。如果有地址,每个地址都应该有按钮编辑,删除和“添加新”。
我有这个VC的数据作为JSON,解析并保存到plist。
那么什么是使这个View看起来不同的逻辑取决于1)是否有地址? 2)如果有1个,2个或20个账单地址?
非常感谢!
答案
我用UITableVIew和UITableViewDataSource以及UITableViewDelegate解决了这样的问题:
- 设置一个部分的表格视图(地址)
func numberOfSections(in tableView: UITableView) -> Int {return 1;}
- 在委托方法中返回地址数组长度
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { return adresses.count }
- 如果数组长度为0,则设置页脚视图
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { if adresses.count == 0 { let vw = YourViewClass() //I use blockskit library here (vw.bk_) to recognize a tap, but you can add a button by yourself vw.bk_(whenTapped: { //Create and present your next viewcontroller to }) return vw } return nil }
- 如果有地址,则将页脚高度设置为0
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { if addresses.count > 0 { return YOUR_DESIRED_FOOTER_HEIGHT_FOR_INPUT } return 0 }
- 为每个地址创建行
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let address = addresses[indexPath.row] let tableViewCell = UITableViewCell() //maybe you have to create your own if the layout does not fit //set tableViewCell's title / description to show address values return tableViewCell }
在这种情况下,当没有可用的地址时,会显示带有添加按钮的页脚视图(如果需要,可以在标题中执行相同操作),并且当地址可用时,它将被隐藏。
以上是关于swift - 为重复数据和无数据创建页面的主要内容,如果未能解决你的问题,请参考以下文章
swift 为什么我们有一个片段。我认为这有助于我们在另一个页面中有一个代码。
Swift 3:回到最后一个发送数据的 ViewController [重复]