0

由于这条线,我有一个生涩的向下滚动问题:

NSString *text =[NSString stringWithCString:[[Text objectAtIndex:indexPath.row] cStringUsingEncoding:NSISOLatin1StringEncoding] encoding:NSUTF8StringEncoding];

文本长度因单元格行而异。我有这条线:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

有没有办法克服这个问题?任何帮助表示赞赏。

4

2 回答 2

0

将文本异步加载到表格视图单元格,例如:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSArray *objects=[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil];
    CustomCell *cell=[objects objectAtIndex:0];

        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,  0ul);
        dispatch_async(queue, ^{

        NSString *text =[NSString stringWithCString:[[Text objectAtIndex:indexPath.row] cStringUsingEncoding:NSISOLatin1StringEncoding] encoding:NSUTF8StringEncoding];


     dispatch_sync(dispatch_get_main_queue(), ^{
                CustomCell *cell = (CustomCell *)[tableView cellForRowAtIndexPath:indexPath];
              // set the string to cell here using cell object.

            });
        });


    return cell;
}
于 2012-09-25T07:11:07.343 回答
0

好吧,伙计们,我在我的问题上搜索了好几个小时,我发现我必须预先计算我所有的 uitableviewcells 并将它们保存到一个 nsmutablearray 中。我还必须预先计算其单元格的高度,因为高度是动态的而不是静态的。完成所有计算后,我必须将此行添加到

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
             return [self.CellObjects objectAtIndex:indexPath.row]; //this just loads the precomputed cell
}

而且我还必须像这样添加每个单元格的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{

  NSNumber *height=[HeightObjects objectAtIndex:indexPath.row];
    CGFloat height1=[height floatValue];
    return height1;

}

希望它可以帮助某人!

于 2012-10-01T18:30:59.067 回答