2009-11-01 41 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