我在 iOS6 上没有这个问题,但目前在 iOS7 上遇到了这个问题。我有一个 UITableView,你可以在加载视图时看到 8 个单元格。每个都填充了来自和数组的不同名称。如果向下滚动,接下来的两个单元格看起来不错,但所有过去的内容都放在上面;该文本是先前单元格中的内容。因此,第 10 个单元格将包含第一个单元格中的内容,以及位于其顶部的第 10 个单元格中应该包含的内容。
代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
//Create Label for Name inside cell
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake( 7.0, 5.0, 300.0, 30.0 )];
[name setText:[self.entriesArray objectAtIndex:indexPath.row]];
//Check to see if current person is a Parent or Child
NSString *class = [self.database getCellDataWithMembership:[self.MembershipArray objectAtIndex:indexPath.row] andColIndex:4];
if([class isEqualToString:@"CHILD"])
{
name.textColor = [UIColor colorWithRed:25.0f/255.0f green:111.0f/255.0f blue:45.0f/255.0f alpha:1.0f];
name.font = [UIFont fontWithName:@"Helvetica-Bold" size:17.0];
}
[cell.contentView addSubview:name];
return cell;
}
我对表格视图的技能充其量只是临时性的。我一直在阅读大量文档并研究解决方案,但无法提出解决方案。我觉得奇怪的是它非常适合 iOS6,但不适用于 iOS7。
所以它从一个数组中获取一个人的名字,我想用这些名字填充单元格。我最初能够使用以下方法完成此操作:
cell.textLabel.text = [self.entriesArray objectAtIndex:indexPath.row];
if([class isEqualToString:@"CHILD"])
{
cell.textLabel.textColor = [UIColor colorWithRed:25.0f/255.0f green:111.0f/255.0f blue:45.0f/255.0f alpha:1.0f];
cell.textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:17.0];
如果我使用它而不是第一个代码块中的“名称” UILabel 操作,那么它会完美地显示名称而没有文本覆盖,但成为问题的是文本颜色。如果它们被标记为儿童,那么它们应该是绿色文本和粗体。但是,向下滚动后,每个人在不应该的时候都会变成绿色。
很抱歉这个冗长的问题。我一直在研究这个问题并绞尽脑汁,但我似乎无法弄清楚。任何帮助将不胜感激。