我试图从 - (void)方法或某种方式更新特定的动态单元格字体大小而不使用cellForRowAtIndexPath。这可能吗?
由于
答案 0 :(得分:1)
If you know the position of the index, as follows:
First create indexPath by row at position:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:rowIndex inSection:0];
Then access to cell:
MyCell *cell = (MyCell *)[self.tableView cellForRowAtIndexPath:indexPath];
答案 1 :(得分:0)
致电
[self.view.tableView reloadRowsAtIndexPaths:@[your_index_path] withRowAnimation:UITableViewRowAnimationAutomatic];
在你的方法中。这将导致行更新
答案 2 :(得分:0)
如果没有调用:cellForRowAtIndexPath,则无法更新单元格。 如果要更新单元格中的字体大小,请重新加载单元格。在您的cellForRowAtIndexPath方法中,添加条件语句以检查您想要不同字体大小的单元格的indexPath并编辑不同的字体大小。不要忘记添加其他条件,以便当单元格重新加载时,它将使其他单元格的字体大小正常。
但是,如果你想以某种方式。然后,您可以使用全局引用变量到单元格。但这只有在单元格显示在屏幕上时才有效。 以下是示例代码:
@interface TableViewController ()
{
UITableViewCell *aCell;
}
@end
@implementation TableViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *theCell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCellIdentifier" forIndexPath:indexPath];
if(indexPath.row == SPECIFIC_ROW_NUMBER){
aCell = theCell;
theCell.tag = SPECIFIC_ROW_NUMBER;
}else if (theCell.tag == SPECIFIC_ROW_NUMBER){
// If the cell is dequeued
aCell = nil;
theCell.tag = 99999; // some unused row number
}
}
- (void)someMethod {
if(theCell != nil){
aCell.titleLabel.font = NEW_FONT;
}
}
@end