Ну, сначала мы думаем, что вместо заполнения NSDictionary во время прокрутки, просто заполните его во время viewDidLoad
.. Я делаю что-то похожее, когда я заполняю все свои данные в NSDictionary
, а затем использую это для инициализации / обновления пользовательский интерфейс для ячеек во время прокрутки для многоразовых ячеек.
Кроме того, помещая ваши данные в какой-либо массив, вы также можете отобразить их в ячейках. Просто помните, что массивы начинаются с 0, поэтому position in table = indexOfYourArray + 1
Простой пример загрузки массива, хранящегося в plist, в NSArray в viewDidLoad
// Load the data
NSString *pathToFile = [[NSBundle mainBundle] pathForResource:someArrayNameString ofType:@"plist"];
self.someArrayYouCreated = [NSArray arrayWithContentsOfFile:pathToFile];
Теперь, когда вы только что выгрузили целый массив данных в этот массив, вы можете заполнить его во время прокрутки в cellForRowAtIndexPath
NSDictionary *dataItem = [someArrayYouCreated objectAtIndex:indexPath.row];
UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.textColor = [UIColor colorWithRed:(58/255.f) green:(58/255.f) blue:(58/255.f) alpha:1.0];
label.text = [dataItem objectForKey:@"PersonName"];
В этом примере вы просто заполняете ячейки из массива, созданного вами в viewDidLoad
, и, следовательно, все ваши данные готовы к использованию практически сразу. Если у вас есть тонна данных, вы также можете запустить круг выполнения, чтобы задержать его на секунду до завершения загрузки массива.
Опять же, я не совсем понимаю, как вы храните свои данные (поскольку вы ничего не сказали об этом), поэтому я могу только предполагать, что это сработает для вас. Пока вы не предоставите более подробную информацию, это лучшее, что я могу сделать.