我在tableView中有两类单元格。一种是标题卡,显示用户的姓名和照片,下面的标题卡显示用户的5个菜单项。我的配置如下:
obj
这里我从各自的数组加载各种项目名称。 因为indexPath 0已被占用,我的第一张菜单卡不会显示 除非我使用 - 1s
进行下面所有奇怪的重置func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0{
let cell = self.menuTable.dequeueReusableCellWithIdentifier("userInfoCard", forIndexPath: indexPath) as! userInfoCard
//Load data
return cell
}else{
let cell = self.menuTable.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! menuItemCell
我理解为什么第一个项目没有加载,但是这是使所有菜单项出现的正确解决方案吗?
答案 0 :(得分:1)
使用UITableView部分。通过这个你不需要那个棘手的操作
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2;
}
现在在你的cellForRowAtIndexPath方法中:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.section == 0{
let cell = self.menuTable.dequeueReusableCellWithIdentifier("userInfoCard", forIndexPath: indexPath) as! userInfoCard
//Load data
return cell
}else{
let cell = self.menuTable.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! menuItemCell
//row starts from 0 with section 1
// No subtraction needed
cell.itemName.text = self.itemNames[indexPath.row]
}