UITableView加载缓慢

时间:2015-10-02 14:05:21

标签: ios objective-c uitableview

我有一个UIViewController,里面有一个UITableView,我使用界面(拖放标签和UITextViews)在我的表中绘制项目,我的表有25行。

现在是时候将我的标签链接到IBOutlets了,我创建了一个TableViewCell的子类,如下所示:

TableViewCell.h

@property (nonatomic, retain) IBOutlet UILabel *label1;

TableViewCell.m

@synthesize label1 = _label1;

我使用此代码更改我的第一个标签:

- (UITableViewCell *)tableView:(UITableView *)tableView2 cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = [menuItems objectAtIndex:indexPath.row];

    HobbiesTableViewCell *cell = [tableView2 dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (cell == nil) {
        cell = [[HobbiesTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    }


    cell.label1.text = @"GG";

    return cell;
}

但是我看到了一个小问题,当我打开我的View(在模拟器中)打开太慢时(我认为我的表正在加载),为了尝试解决这个问题,我删除了我的属性nonatomic我的视图开得更快。

但是我有一个问题,当我创建属性时,我总是把命令nonatomic,并且在这个项目中我不得不把它取下来因为速度慢,有一个问题要取消nonatomic在这个属性?(因为标签永远不会改变!)

2 个答案:

答案 0 :(得分:1)

你应该让label1弱,就像在故事板中一样。你也不再需要@synthesize了。

此外,如果您使用不同的标识符出列,那么您实际上并没有出列。原型单元应该在storyboard中有一个标识符。

NSString *CellIdentifier = @"MyCellID"
 HobbiesTableViewCell *cell = [tableView2 dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Nonatomic应该会提高性能,并且不会导致您的问题。

答案 1 :(得分:1)

根据您列出的内容,我宁愿责怪不是表格视图,而是责备menuItems。它的内容是来自互联网还是文件?如果是,我想问题是您在主线程上执行远程数据源的访问

UPD: 经过与PO的简短谈话后,很明显问题是因为有25个单元具有不同的重用ID。