ios - tag - telepeaje mexico
¿Cómo recargo una Vista de Colección automáticamente? (4)
Debería poder usar [collectionView reloadData] una vez que sepa que la descarga se ha completado.
Desarrollé una aplicación de lector RSS utilizando vistas de colección. Mi problema es que, en el primer lanzamiento, la aplicación aparece en blanco.
El proceso es, la alimentación RSS se extrae de la web, se almacena en un archivo temporal en el dispositivo y luego se muestra a través de vistas de colección.
Mi pregunta es ¿Cómo obtengo la aplicación para volver a cargar los datos automáticamente una vez que los archivos se han cargado? Para que el usuario no vea una pantalla en blanco inicial.
He intentado agregar este código
[self.collection1 performBatchUpdates:^{
[self.collection1 reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
Sin embargo, no funciona para la vista inicial.
¿Debo hacer algo con el delegado de la aplicación? o desde el controlador de vista de colección en sí?
por favor avise
A continuación se muestra el código utilizado para obtener y mostrar mis datos ....
#pragma mark - UICollectionViewDataSourceDelegate
- (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
- (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return [_articleListmain count];
}
- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MainCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"articleCellmain"
forIndexPath:indexPath];
NSDictionary *item = [_articleListmain objectAtIndex:indexPath.item];
// set the article image
[cell.image setImageWithURL:[item objectForKey:@"image"]];
// set the text of title UILabel
cell.title.text = [NSString stringWithFormat:@"%@/n/n/n/n", [item objectForKey:@"title"]];
cell.title.textColor = [UIColor colorWithRed:33.0f/255.0f green:74.0f/255.0f blue:146.0f/255.0f alpha:1.0f];
// set the text of summary UILabel
cell.description.text = [NSString stringWithFormat:@"%@/n/n/n/n/n/n/n/n/n", [item objectForKey:@"description"]];
cell.targetURL.text = [NSString stringWithFormat:@"%@/n/n/n/n", [item objectForKey:@"link"]];
cell.category.text = [NSString stringWithFormat:@"%@/n/n/n/n", [item objectForKey:@"category"]];
cell.date.text = [NSString stringWithFormat:@"%@/n/n/n/n", [item objectForKey:@"pubDate"]];
cell.image.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"placement.png"]];
return cell;
}
[self.collection1 performBatchUpdates:^{
[self.collection1 reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
Intenta reemplazar este código con el siguiente código
[self.collection1 performBatchUpdates:^{
[self.collection1 reloadData];
} completion:nil];
Creo que acaba de poner [self.collection1 reloadData] en la vista que aparecerá de ViewController donde se ubica su vista de colección.
O
Puede volver a cargar los datos en algún lugar incluso antes de que aparezca la vista, como inmediatamente después del análisis solo asegúrese de haber inicializado la vista donde se encuentra la vista de la colección antes de volver a cargarla.
prueba esto
[self.collection1 performBatchUpdates:^{
[collectionView reloadData]
} completion:nil];
una vez que se haya completado su descarga.