为什么UITableView在我触摸时会显示数据?

时间:2012-10-22 14:49:13

标签: objective-c ios uitableview

我有一个UITableView加载一些推文,一切都很好但是当我填充表时它不会进入CellForRow方法直到我触摸表视图....有人知道如何解决这个问题吗?

 tab = [[UITableView alloc] initWithFrame:CGRectMake(10, 300, 400, 200) style:UITableViewStylePlain];
 tab.dataSource = self;
 tab.delegate = self;

...然后

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"entra a cellula");
    Tweet *t = [tweets objectAtIndex:indexPath.row];

    static NSString *MyIdentifier = @"MyIdentifier";

    // Try to retrieve from the table view a now-unused cell with the given identifier.
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

    // If no cell is available, create a new one using the given identifier.
    if (cell == nil) {
        // Use the default cell style.
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:MyIdentifier];
    }



    cell.textLabel.text = t.screenName;
    cell.detailTextLabel.text = t.text;
    cell.imageView.image = t.profileImage;
return cell;

}

2 个答案:

答案 0 :(得分:1)

根据我们所知道的最好的猜测是你没有在主线程上添加表作为子视图。这意味着在滚动之前不会重绘。尝试将addsubview调用包装在GCD调用中,如下所示:

dispatch_async(dispatch_get_main_queue(), ^() {
    [self addSubview:tab];
});

答案 1 :(得分:0)

完成加载推文后,请调用此方法:

[tab reloadData];

重新加载tableView数据源。