在iOS5中,单元格是自动分配的,因此向子视图添加子视图时会出现问题, 因为每次单元格重新加载子视图都会增加它。
我现在所做的是检查子视图并在添加新视图之前将其删除,如下所示:
for (UIView *subview in cell.subviews) {
if ([subview isKindOfClass:MarqueeLabel.class]) {
[subview removeFromSuperview];
}
}
有没有人有更好的解决方案?
答案 0 :(得分:0)
在你应该拥有并且肯定已经实现的cellForRowAtIndexPath:委托协议方法中,试试这个:
if (cell) {
// This if statement is declaring that the cell is non-zero and valid. All your activity with the cell should be done here, add the following:
cell.imageView.image = nil;
// or
cell.imageView = nil;
// or most likely in your case
cell.subviews = nil;
// Then assign your subviews/image or whatever. This way it refreshes each time.
另外,您是否将tableViewCells出列如下:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"cell"]
autorelease];
}