- Registriert
- 07.02.05
- Beiträge
- 510
Hi Leute,
ich beobachte bei mir das seltsame Problem, dass sich UILabels, eingebettet in einer TableViewCell beim herumscrollen wiederholen und andere Felder überlagern. Das sieht dann im Simulator so aus:
(Ja, ich mache CS193P
)
Kommt nicht vor bei TableViews, die nicht länger als der Bildschirm sind.
Ich denke daher, dass es etwas mit dem Cell Queuing zu tun hat. Jedenfalls bin ich nach mehreren Stunden Suche codeblind geworden:
Was habe ich übersehen?
ich beobachte bei mir das seltsame Problem, dass sich UILabels, eingebettet in einer TableViewCell beim herumscrollen wiederholen und andere Felder überlagern. Das sieht dann im Simulator so aus:
(Ja, ich mache CS193P

Kommt nicht vor bei TableViews, die nicht länger als der Bildschirm sind.
Ich denke daher, dass es etwas mit dem Cell Queuing zu tun hat. Jedenfalls bin ich nach mehreren Stunden Suche codeblind geworden:
Code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
NSString *text = [[NSString alloc] initWithString:[[[person timeline] objectAtIndex:indexPath.row] objectForKey:@"text"]];
CGSize withinSize = CGSizeMake(tableView.bounds.size.width-40, 1000.0);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:withinSize lineBreakMode:UILineBreakModeWordWrap];
CGSize box = CGSizeMake(tableView.bounds.size.width-40 , size.height);
CGRect contentRect = CGRectMake(10.0, 10.0, box.width, box.height);
UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];
textView.lineBreakMode = UILineBreakModeWordWrap;
textView.text = text;
textView.numberOfLines = 0;
textView.font = [UIFont systemFontOfSize:12];
[cell.contentView addSubview:textView];
[textView release];
[text release];
return cell;
}
Was habe ich übersehen?