【问题标题】:Add subview (rows) fast to UIScrollView while scrolling滚动时将子视图(行)快速添加到 UIScrollView
【发布时间】:2012-07-02 21:15:17
【问题描述】:

我的 UIScrollView 有很多行(~100),我实现了 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

【问题讨论】:

标签: iphone ios uitableview uiscrollview


【解决方案1】:

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

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

【讨论】:

  • 我需要使用 ScrollView,因为我想创建 AccordionView。当我单击该行时,我将展开我的行并显示带有部分的 UITableView。
  • @tikhop 您可以使用 uitableview 实现手风琴视图。
  • @jrturton 我知道,但我需要特定的手风琴视图。
【解决方案2】:

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

同时有个小建议:在addVisibleRows之前调用removeInvisibleRows

【讨论】:

  • 调用顺序不受影响
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
相关资源
最近更新 更多