0

我有很多行(~100)的 UIScrollView,我实现了 dequeueReusableRow 方法来快速分配和添加我的子视图(行)。一切工作正常,但如果我用减速滚动非常快,一些视图只有在以后才按时添加到 scrollView 中。

- (UIView *)dequeueReusableRow
{
    UIView *view = [reusableRows anyObject];

    if(view) 
    {
        [[view retain] autorelease];
        [reusableRows removeObject:view];
    }else{
        view = [[UIView alloc] init....
    }

    return view;
}

- (void)addVisibleRows
{
    UIView *row = [self dequeueReusableRow];
    row.frame = ....
    [scrollView addSubview:row]
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [self addVisibleRows];
    [self removeInvisibleRows];
}

请不要建议我使用 UITableView,因为手风琴的结构看起来像:

section
- section
-- section
--- row
- section
section
- row
4

2 回答 2

1

dequeueReusableRow 不是 UIScrollViewController 的一部分,所以我认为 dequeueReusableRow 是您自己实现的。如果是这样,您可以显示该代码吗?我们很可能可以帮助解决任何效率低下的问题。

此外,如果您的滚动视图包含行,为什么不使用 UITableView 来为您完成大部分工作?我知道您要求不要提出它-您能解释一下为什么需要使用 ScrollView 以便我们可以更好地为您提供帮助吗?

于 2012-07-02T21:19:06.283 回答
0

从该代码段很难分辨。一些更多的细节将不胜感激。

同时有一个小建议:打电话removeInvisibleRows之前addVisibleRows

于 2012-07-02T21:54:42.553 回答