如何在UITableViewCell重新订购后更改标签的文本
问题描述:
我有一个带有自定义单元格的UITableView。当我点击编辑时,TableView会进入编辑模式。我可以移动单元格并删除它们,并将结果保存到核心数据实体。核心数据中保留了单元格的新顺序,这一切都有效。如何在UITableViewCell重新订购后更改标签的文本
但是我希望在移动之后或点击“完成”之后,反映出单元格的新位置。无论标签被移动到什么位置,标签中的值始终是行+1。我如何重新申请
实现此目标的最佳方法是什么?
在此先感谢
- 保罗
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
ProfileItems *profileItems = [ingredients objectAtIndex:fromIndexPath.row];
// NSLog(@"profileItems: %@", profileItems);
[ingredients removeObjectAtIndex:fromIndexPath.row];
[ingredients insertObject:profileItems atIndex:toIndexPath.row];
NSInteger start = fromIndexPath.row;
NSLog(@"start: %d", start);
NSInteger end = toIndexPath.row;
NSLog(@"end: %d", end);
// Update Core Data to reflect the cell's new position in the TableView
profileItems.profileItemsSongOrder = [NSNumber numberWithInteger:end + 1];
// This won't work becuase there is no cell referenced in here. Do I have to point to it again? If so how?
cell.profileItemsSongNumberLabel.text = [NSString stringWithFormat:@"%@",profileItems.profileItemsSongOrder];
}
答
我解决了这个与......循环以下
for (int i = 0; i < numberOfRows; i++)
{
[[profileItemsNSMArray objectAtIndex:i] setValue:[NSNumber numberWithInt:i + 1] forKey:@"profileItemsSongOrder"];
}