2015-11-11 3 views
0

UICollectionView имеет некоторые встроенные методы источника данных, такие как метод cellforItemAtIndexPath и метод «numberofitemsinsection». Если я правильно понимаю, эти методы вызывается после завершения viewDidLoad(). Однако для моих целей я хочу иметь возможность точно контролировать момент времени, в котором эти методы вызывают. Как я могу это сделать?UICollectionView Datasource Methods

Причина в том, что я загружаю загрузку некоторых изображений, и я хочу закончить задачу загрузки до вызова этих методов.

+0

, если вы хотите, чтобы вызвать этот метод вручную просто перезагрузить представление коллекции [self.collectionView reloadData]; или вам нужно сделать что-то в своем приложении, когда ударяете этих делегатов, тогда лучше попробуйте пользовательский коллекционный просмотр с делгатом, который сделает необходимые – AnshaD

+0

. Вы не можете. Вы можете инициировать определенную серию вызовов, но после этого вы не можете контролировать. Самое близкое, что вы можете сделать, это убедиться, что свойство datasource не установлено, пока вы не хотите запускать загрузку. – Avi

+0

ОК, дело в том, что я загружаю изображения и нуждаюсь в них, чтобы закончить загрузку до вызова этих методов источника данных. Поскольку загрузка изображений происходит асинхронно, в настоящее время мне не хватает элемента управления, чтобы все мои загрузки имели место FIRST. –

ответ

0

Похоже, вы не хотите показывать коллекцию до тех пор, пока изображения не будут загружены, верно? Возвращает ли 0 количество элементов до завершения загрузки изображений? У меня нет моего Mac со мной, или я бы проверил это перед публикацией.

+1

Это скорее комментарий, чем ответ – Usama

+0

«У вас должно быть 50 репутации для комментариев» – mgiesa

0

Отключите источник данных collectionView и делегат, подключенный к контроллеру из раскадровки. Затем установите их в код, как только вы захотите.

Сначала подключите розетку коллекцииView к секции интерфейса.

@interface YourViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate> 

@property (weak, nonatomic) IBOutlet UICollectionView *collectionView; 

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

self.collectionView.delegate= self; 
self.collectionView.dataSource= self; 
[self.collectionView reloadData];