2009-11-01 36 views
0

我需要幫助在OpenFlow中獲取數據源。 I幫助獲取數據源在OpenFlow上工作

我想在手機水平翻轉時提供CoverFlow功能。我使用Alex Fajkowski的OpenFlow代碼(http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/),但提供的示例與我需要的大不相同。

我在導航欄視圖控制器內的水平視圖中使用OpenFlow。我有OpenFlow已經工作。我可以滾動瀏覽所有圖片,效果非常好。但是,我使用它的圖片超過100張,首先需要一段時間才能加載。在研究性能改進時,我意識到AFOpenFlowViewDataSource委託沒有被調用。通過在視圖控制器類「flowView.dataSource = self;」中指定委託,我能夠獲得AFOpenFlowViewDelegate的工作。但我無法讓數據源代理工作。甚至沒有「flowView.viewDelegate = self;」。

是否需要數據源?看起來它是加載線程所需要的。

回答

2

好吧,它現在看起來很漂亮。只有在動態加載對象時才調用DataSource委託。意思是,如果我使用「[(AFOpenFlowView *)self.view setImage]」,那麼dataSOurce永遠不會被調用,因爲它知道圖像已經被加載。但是,使用「[(AFOpenFlowView *)self.view setNumberOfImages:30];」會觸發DataSource委託在需要時加載映像。我發現GetImageOperationNSThread對我的100多張圖片非常有用。但是,在離開屏幕後圖像不會被卸載。任何人都知道如何卸載圖像,因爲他們離開屏幕?

+2

看來問題來自一個可變數組,隨着每個視圖的添加而增長。這個數組對於少量的對象來說很好,但是當有很多對象的時候它會變成內存佔用。我通過簡單地註釋掉數組行的位置來解決它。 AFOpenFlowView.m查找 - (void)setImage:(UIImage *)image forIndex:(int)索引並註釋掉以下行: // [coverImages setObject:imageWithReflection forKey:coverNumber]; // [coverImageHeights setObject:[NSNumber numberWithFloat:image.size.height] forKey:coverNumber]; – user200607 2009-11-03 17:55:08