您可以每次生成一个随机单元 ID,这样它就不会被重复使用。
但是,这对于滚动性能和内存消耗来说并不是很好,因此请考虑实际重用单元格(即想出一种方法来替换其中的数据)。
编辑:
您总是可以将视图从一个复制到另一个,类似于以下内容:
UITableViewCell* myCell = [UITableViewCell alloc] initWithStyle:YOUR_CELL_STYLE reuseIdentifier:YOUR_RANDOM_ID];
for (UIView *view in newCell.subviews) {
[view removeFromSuperview];
[myCell addSubview: view];
}
您可能还需要将 myCell 的框架调整为与 newCell 的框架相同,如果 newCell 是任何事件的动作目标(例如,单击单元格内的控制元素会触发单元格类中定义的某些动作),您将也需要将它们重新分配给 myCell。
编辑2:
要移动操作,您可以执行以下操作:
NSSet* targets = [control allTargets];
for(id target in targets) {
NSArray* actions = [control actionsForTarget:target forControlEvent:UIControlEventTouchUpInside];
for(NSString* selectorName in actions) {
[newControl addTarget:target action:NSSelectorFromString(selName) forControlEvents:UIControlEventTouchUpInside];
}
}
用你的新单元格替换目标 - 并确保它实现了所有必要的选择器(或者你可以放置一个新的选择器)。上面的代码将替换 UIControlEventTouchUpInside 的目标 - 您可以使用您需要的目标(或使用 allControlEvents 枚举控件使用的目标)。