自定义 UITableViewCell 为零
Custom UITableViewCell is nil
我正在使用 xib 加载 UITableViewController
中的单元格。通过点击弹出模态的单元格上有一个按钮,当我们点击该模态上的某些东西时,我想更改单元格中的图像。但是即使我传递了 indexPath,我也无法获取单元格。
我使用了以下代码:
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:sender inSection:0];
[self.tableView2 reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath1, nil] withRowAnimation:UITableViewRowAnimationNone];
我在cellForRowAtIndexPath
中写了代码如下:
if([[feedbackDictionary objectForKey:[NSString stringWithFormat:@"Key%li",indexPath.row]] isEqualToString:[NSString stringWithFormat:@"%li",indexPath.row]])
{
NSLog(@"Yay! Feedback");
cell.checkmark.image=[UIImage imageNamed:@"tick"];
}
else
{
NSLog(@"Oops! No feedback");
cell.checkmark.image=[UIImage imageNamed:@"orangetick"];
}
我假设当 reloadrows
将 运行 时,它将通过调用 cellForRowAtIndexPath
重新加载该特定单元格。但这无济于事。图片完全没有变化。
其次,我尝试使用以下方法获取单元格
NSIndexPath *ip=[NSIndexPath indexPathForItem:button.tag inSection:0];
ExpandingCell *cell=(ExpandingCell*) [_tableView2 cellForRowAtIndexPath:ip];
if(cell==nil)
{
NSLog(@"No cell");
}
我没有得到任何单元格作为输出。请帮忙。
首先,要对其进行调试,请尝试调用 [self.tableView2 reloadData]
。如果您的图像已更改,则意味着您为 reloadRowsAtIndexPaths
方法调用了错误的 indexPath。
另外 button.tag
可能 return 错误的标签,因为单元格在 UITableView 中是可重复使用的,并且它可以是以前已经使用过的单元格。
我已经找到问题并解决了。问题是当模式弹出时,它失去了对视图控制器的控制,这就是为什么 tableview 为 null 并且没有任何更改。
我正在使用 xib 加载 UITableViewController
中的单元格。通过点击弹出模态的单元格上有一个按钮,当我们点击该模态上的某些东西时,我想更改单元格中的图像。但是即使我传递了 indexPath,我也无法获取单元格。
我使用了以下代码:
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:sender inSection:0];
[self.tableView2 reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath1, nil] withRowAnimation:UITableViewRowAnimationNone];
我在cellForRowAtIndexPath
中写了代码如下:
if([[feedbackDictionary objectForKey:[NSString stringWithFormat:@"Key%li",indexPath.row]] isEqualToString:[NSString stringWithFormat:@"%li",indexPath.row]])
{
NSLog(@"Yay! Feedback");
cell.checkmark.image=[UIImage imageNamed:@"tick"];
}
else
{
NSLog(@"Oops! No feedback");
cell.checkmark.image=[UIImage imageNamed:@"orangetick"];
}
我假设当 reloadrows
将 运行 时,它将通过调用 cellForRowAtIndexPath
重新加载该特定单元格。但这无济于事。图片完全没有变化。
其次,我尝试使用以下方法获取单元格
NSIndexPath *ip=[NSIndexPath indexPathForItem:button.tag inSection:0];
ExpandingCell *cell=(ExpandingCell*) [_tableView2 cellForRowAtIndexPath:ip];
if(cell==nil)
{
NSLog(@"No cell");
}
我没有得到任何单元格作为输出。请帮忙。
首先,要对其进行调试,请尝试调用 [self.tableView2 reloadData]
。如果您的图像已更改,则意味着您为 reloadRowsAtIndexPaths
方法调用了错误的 indexPath。
另外 button.tag
可能 return 错误的标签,因为单元格在 UITableView 中是可重复使用的,并且它可以是以前已经使用过的单元格。
我已经找到问题并解决了。问题是当模式弹出时,它失去了对视图控制器的控制,这就是为什么 tableview 为 null 并且没有任何更改。