我正在尝试更改我的表格视图单元格,此处更改分段控件是我现在拥有的
internal func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var returnValue = 0
switch(segmentedC.selectedSegmentIndex)
{
case 0:
returnValue = rest.count
break
case 1:
returnValue = fullMenu.count
break
default:
break
}
return returnValue
}
我的numberOfRowsInSection
和cellForRowAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("food") as! restTableViewCell
var cell2 = tableView.dequeueReusableCellWithIdentifier("fullM") as! fullmenuTableViewCell
switch(segmentedC.selectedSegmentIndex)
{
case 0:
let res: Rest!
res = rest[indexPath.row]
var img: UIImage?
if let urls = foo.imageString{
img = foodViewController.imageCache.objectForKey(urls) as? UIImage
}
dispatch_async(dispatch_get_main_queue()) {
cell.setupViews(res)
}
break
case 1:
cell2.textLabel?.text = fullMenu[indexPath.row]
break
default:
break
}
return cell
}
此外,我还有IBAction
分段控件
@IBAction func seg(sender: AnyObject) {
switch(segmentedC.selectedSegmentIndex)
{
case 0:
tableView.reloadData()
break
case 1:
tableView.reloadData()
break
default:
break
}
}
但是当我更改细分时,只有index 0
中的一个细胞出现在index 1
答案 0 :(得分:2)
在你的cellForRowAtIndexPath中,你总是返回你永远不会返回cell2的单元格。尝试在第二种情况下返回cell2。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("food") as! restTableViewCell
var cell2 = tableView.dequeueReusableCellWithIdentifier("fullM") as! fullmenuTableViewCell
switch(segmentedC.selectedSegmentIndex)
{
case 0:
let res: Rest!
res = rest[indexPath.row]
var img: UIImage?
if let urls = foo.imageString{
img = foodViewController.imageCache.objectForKey(urls) as? UIImage
}
dispatch_async(dispatch_get_main_queue()) {
cell.setupViews(res)
}
break
case 1:
cell2.textLabel?.text = fullMenu[indexPath.row]
return cell2
break
default:
break
}
return cell
}