AQGridView: не удалось вызвать метод cellForItemAtIndex вручную - PullRequest
0 голосов
/ 16 марта 2012

В моем приложении iPAd

Я использую AQGridView.

У него много карточек.

При нажатии кнопки я изменяю массив изображений. (Означает заменуизображения).

-Код для загрузки карточек с помощью метода Image, который я написал ниже.

- (AQGridViewCell *) gridView: (AQGridView *) aGridView cellForItemAtIndex: (NSUInteger) index

****** Теперь этот метод вызывается дважды. **

1.При первом отображении ячейки. (Распределение).

** 2. При прокрутке AQGridView. ******

Вот стек для этого метода.. enter image description here

Теперь, когда я вручную вызываю

LayoutSubviews

OR

[self.gridView reloadData];

Как, некоторые параметры отличаются в этом методе AQGridView.

Он вообще не работает. ЗначенияНе удалось вызвать метод.

Итак, я вызываю метод, как, у вас есть какие-либо другие решения.

  for(int i=0;i<[toShowArray count];i++)
    {
    [self.gridView.dataSource gridView:self.gridView cellForItemAtIndex:i];
    }   

1 Ответ

2 голосов
/ 18 июля 2012

[self.gridView reloadData]; должен в конечном итоге вызвать cellForItemAtIndex, если вы подключите источник данных следующим образом:

self.gridView.dataSource = self;

Но поскольку вы запрашивали другие решения, для каждого элемента также должно быть вызвано cellForItemAtIndex:

int dataElemCount = [toShowArray count];
NSIndexSet* indices = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, dataElemCount)];
[self.gridView beginUpdates];
[self.gridView reloadItemsAtIndices:indices withAnimation:AQGridViewItemAnimationFade];
[self.gridView endUpdates];

Обратите внимание, что reloadItemsAtIndices работает только в beginUpdates и endUpdates. Вы также можете изменить анимацию на любую другую AQGridViewItemAnimation, какую пожелаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...