2

私は知っています、これは数回尋ねられ、毎回1回以上答えられますが、これらの解決策の誰も私を助けませんでした!

TableView を開くと、10 行以上ではなく 1 行のテキストが表示されます。下にスクロールすると、2セル後に正しい方法で表示されます! もう一度上にスクロールすると、この 1 行のセルがすべて正しく表示されていることがわかります。それで、ここに私の質問があります:私のコードで何がうまくいかなかったのですか?!

これは私の 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;
4

2 に答える 2

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;
于 2013-10-22T01:20:56.070 に答える
0

多分あなたは を逃しましたか?

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

于 2013-10-22T01:06:38.343 に答える