2009-11-01 1 views
0

Мне нужна помощь в получении данных в SourceFactory. IПомогите получить dataSource, работающий на OpenFlow

Я хочу предоставить функцию CoverFlow всякий раз, когда телефон поворачивается по горизонтали. Я использую замечательный код Alex Fajkowski OpenFlow (http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/), но представленный пример очень отличается от того, что мне нужно.

Я использую OpenFlow в горизонтальном представлении внутри контроллера отображения навигации. У меня уже работает OpenFlow. Я могу просматривать все мои изображения и работать очень хорошо. Однако я использую его с более чем 100 изображениями, и сначала требуется загрузка. Изучая улучшения производительности, я понял, что делегат AFOpenFlowViewDataSource не вызван. Мне удалось заставить AFOpenFlowViewDelegate работать, указав делегата в классе контроллера вида "flowView.dataSource = self;". Но я не могу заставить делегата datasource работать. Даже с "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