我该如何构建像这样的相同设计...请指导我,我只想知道我如何能够实现相同的视图。我知道什么是tableview,但最重要的是如何使用三种不同的单元格类型填充tableview,并且位置不是固定的,取决于beckend。
所有单元格都可以单击(推到另一个Viewcontroller)
答案 0 :(得分:0)
为了提供diff单元(无论是在不同部分中还是仅一个部分都没有关系),您需要做的就是注册多个不同的“原型”单元(每个都具有diff布局/样式/等)。与表格视图。然后,您可以根据需要使用“业务逻辑”使特定的“类型”出列(如果可重用)。
以编程方式使用
注册原型单元func register(_ cellClass: AnyClass?, forCellReuseIdentifier identifier: String)
如果使用情节提要-您只需将多个单元格拖到表格视图中
然后在
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
您使正确的单元格类型出队
func dequeueReusableCell(withIdentifier identifier: String) -> UITableViewCell?
通过使用表视图的委托方法,单元格是“可选的”
optional func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
答案 1 :(得分:-1)
要创建此视图,最简单的方法是 创建一个具有不同部分的简单集合视图,每个部分中将有多行
在这里查看demoapp的屏幕截图: http://prntscr.com/lioqjz
节和行都是动态的
要执行此视图,我们使用UICollectionreusableview作为页脚视图在每个节之间提供空间,这是collectionview实现的代码:
extension ViewController:UICollectionViewDelegate,UICollectionViewDataSource {
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 3
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
//If you have different rows with different sections then you follow through array count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:"Cell", for: indexPath) as! customCollectionViewCell
cell.txtLabel.text="Type="+String(indexPath.section)+""+String(indexPath.row)
return cell
}
}
这是情节提要的SS: http://prntscr.com/liosvm
要使单元格可点击,您可以在每个单元格中添加UITapgesture