2012-07-02 50 views
0

我有UIScrollView有很多行(〜100),我實現了dequeueReusableRow方法來快速分配和添加我的子視圖(行)。一切工作正常,但如果我滾動速度非常快,減速一些視圖不只是以後添加到scrollView的時間。滾動時快速添加子視圖(行)到UIScrollView

- (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 
+0

我建議你使用的UITableView。 http://stackoverflow.com/questions/1944428/how-to-implement-an-accordion-view-for-an-iphone-sdk-app – jrturton

回答

1

dequeueReusableRow不是UIScrollViewController的一部分,所以我認爲dequeueReusableRow是你實現你自己。如果是這樣,你可以顯示該代碼?這可能是我們可以幫助解決任何低效率問題的地方。另外,如果你的滾動視圖包含行,爲什麼不使用一個UITableView,它會爲你做很多工作?我知道你問過不要提出它 - 你能解釋爲什麼你需要使用ScrollView,所以我們可以幫助你更好嗎?

+0

我需要使用ScrollView becouse我想創建AccordionView。當我點擊該行時,我會展開我的行並用節來顯示UITableView。 – tikhop

+0

@tikhop您可以使用uitableview實現手風琴視圖。 – jrturton

+0

@jrturton我khow,但我需要特定的手風琴視圖。 – tikhop

0

從代碼片段中很難分辨出來。一些更多的細節將不勝感激。在此期間

一個小小的建議:呼叫removeInvisibleRowsaddVisibleRows

+0

調用序列不受影響 – tikhop

相關問題