2012-04-20 16 views
0

Прямо сейчас я использую ALAssetsLibrary для сбора фотографий из ALAssetsGroupSavedPhotos и ALAssetsGroupLibrary. После чтения всех активов в массив я заполняю свой UITableView ([myTable reloadData]), чтобы показать фотографии.Возможные способы ускорить чтение из ALAssetsLibrary и заполнение UITableView

Я нахожу, что если у пользователя много фотографий, увеличивается задержка. Есть ли способ ускорить процесс? У UIIMagePicker по умолчанию вообще нет задержки, несмотря на количество фотографий в Camera Roll или PhotoLibrary. Есть ли способ достичь такой же скорости?

Спасибо!

+0

ALAsset будет работать в отдельном потоке, потому что его БЛОК. Таким образом, вы должны делать материалы пользовательского интерфейса в основном потоке. см. мой ответ здесь для более подробной информации. Вы можете увидеть мой ответ здесь http://stackoverflow.com/questions/13508535/add-uiimageview-into-uiscrollview-inside-block-with-alasset/13508841#13508841 –

ответ

4

Просто перечислить средства вы в настоящее время необходимо отобразить с помощью enumerateAssetsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock вашей группы активов, а не с помощью - (void)enumerateAssetsUsingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock

вы могли бы (я полагаю, вы хотите, чтобы заполнить вид таблицы), например, просто перечислить актива на индекс indexPath.row в вашем tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath метод.