TableView在滚动时更改单元格内容

时间:2013-10-22 00:49:58

标签: ios objective-c xcode cocoa-touch

我知道,有人会多次询问这个问题并且每次都会回答一次以上,但这些解决方案中没有一个帮助过我自己!

当我的TableView打开时,我可以看到一行文字,而不是> 10!所以我向下滚动,2个单元格后面呈现正确的方式!如果我再次向上滚动,我可以看到单行的单元格,也正确地呈现一切! 所以,这是我的问题:我的代码出了什么问题?!

这是我的cellForRowAtIndexPath:

NSString *CellIdentifier = @"Cell";
    AACTickerYellowCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell == nil)
    {
        cell = [[AACTickerYellowCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSString * text = [self getTextAtIndex:indexPath];

    CGSize size = [self frameForText:text sizeWithFont:nil constrainedToSize:CGSizeMake(260.0f, CGFLOAT_MAX)];

    [cell.textView setFrame:CGRectMake(10, 5, 260, size.height + 20)];
    cell.textView.text = text;

    return cell;

2 个答案:

答案 0 :(得分:1)

尝试这样,你的问题就会消失:

NSString *CellIdentifier = @"Cell";
    AACTickerYellowCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell == nil)
    {
        cell = [[AACTickerYellowCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSString * text = [self getTextAtIndex:indexPath];

    dispatch_async(dispatch_get_main_queue(), ^{

        CGSize size = [self frameForText:text sizeWithFont:nil constrainedToSize:CGSizeMake(260.0f, CGFLOAT_MAX)];

        [cell.textView setFrame:CGRectMake(10, 5, 260, size.height + 20)];
        cell.textView.text = text;
    });
    return cell;

答案 1 :(得分:0)

也许您错过了

NSString * text = [self getTextAtIndex:indexPath.row]