对于UITableView,我使用的是2个不同的单元格中的一个。第一个显示内容,第二个是一个简单的标签,表示如果数组为空,则没有内容。我也在切换一个分段控制器,它控制使用哪个阵列。我有两个单元格的课程。第二个只有一个标签的IBoutlet,它将根据分段控制器进行更改。我的代码如下所示:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var returnValue = 0
switch(mySegmentedControl.selectedSegmentIndex) {
case 0:
returnValue = accounts.count
break
case 1:
returnValue = user.count
break
case 2:
returnValue = mutual.count
default:
break
}
return returnValue
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ConnectCell", for: indexPath) as! ConnectTableViewCell
let cell2 = tableView.dequeueReusableCell(withIdentifier: "noUsersCell") as! NoUsersTableViewCell
switch(mySegmentedControl.selectedSegmentIndex) {
case 0:
let user = self.accounts[indexPath.row]
cell.user = user
cell.selectionStyle = UITableViewCellSelectionStyle.none
cell.delegate = self
break
case 1:
let user = self.user[indexPath.row]
cell.user = user
cell.selectionStyle = UITableViewCellSelectionStyle.none
cell.delegate = self
break
case 2:
let user = self.mutual[indexPath.row]
cell.user = user
cell.selectionStyle = UITableViewCellSelectionStyle.none
cell.delegate = self
break
default:
break
}
return cell
}
我刚刚添加了“cell2”,因为这是迄今为止的一项新功能。我相信我必须使用numberOfRowsInSection检查数组是否为空,如果它为空则返回1,然后在CellForRowAt的情况下放置条件以检查数组是否为空,然后使用cell2。然后我可以更改cell2的文本。但是,我不知道休息后如何返回单个cell2。有什么想法吗?
答案 0 :(得分:1)
我会用两个部分来做。使用第0部分作为实际数据,第1部分使用" no content"细胞
如果第1部分中没有行,则以下仅显示第2部分("无内容")。
{{1}}
答案 1 :(得分:0)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let count = myArray.count
switch count {
case 0:
return 1
default:
return count
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let count = myArray.count
switch count {
case 0 :
let cell = ..... NoContentCell
return cell
default:
let cell = ... ContentCell // and in here do your other cells.
return cell
}
}
这应该可以解决问题