滚动时快速将子视图(行)添加到UIScrollView

时间:2012-07-02 21:15:18

标签: iphone ios uitableview uiscrollview

我有很多行(~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

2 个答案:

答案 0 :(得分:1)

dequeueReusableRow不是UIScrollViewController的一部分,所以我假设dequeueReusableRow是你自己实现的。如果是这样,你能展示代码吗?我们可以帮助解决任何低效问题。

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

答案 1 :(得分:0)

很难从代码片段中分辨出来。更多细节将不胜感激。

同时提出一个小建议:在removeInvisibleRows

之前致电addVisibleRows