ios iphone objective-c uicollectionview uicollectionviewcell

ios - ¿Cómo insertar imágenes en uicollectionview programmatically?



iphone objective-c (3)

Principiante lea tutroial y comprenda todo en el siguiente enlace y Apple Doc

ios-programming-uicollectionview-tutorial-with-sample-code

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/Reference/Reference.html

cambia este tu color blackground como este enfoque

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath]; UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100]; recipeImageView.image = [UIImage imageNamed:[recipeImages objectAtIndex:indexPath.row]]; cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"photo-frame.png"]]; [self.view addSubview:recipeImageView]; cell.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:[recipeImages objectAtIndex:indexPath.row]]]; return cell; }

salida:

Soy bastante nuevo para Objective-C, así que espero que todo esto tenga sentido. Ejecuto el código proporcionado en la primera respuesta. Crear un UICollectionView programáticamente . Está funcionando bien. Ahora quiero agregar algunas imágenes en la celda que pueden expandirse con un clic del mouse. . Busqué muchos tutoriales, pero todos usando archivos semilla o archivos de guiones gráficos. ¿Cómo puedo realizar esta tarea programáticamente?

Cualquier ayuda sería muy apreciada. Gracias por adelantado.


NOTA:

¡el código de arriba es INCORRECTO!

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath]; UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100]; recipeImageView.image = [UIImage imageNamed:[recipeImages objectAtIndex:indexPath.row]]; cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"photo-frame.png"]]; [self.view addSubview:recipeImageView]; cell.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:[recipeImages objectAtIndex:indexPath.row]]]; return cell; }

Usted asigna (mejor para asignar ONCE TAGs anónimos ...) pero el código ADD subvista CADA vez se llama a cellForItemAtIndexPath.


como sugiere Logan:

#define IMG_TAG 1000 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"MyCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // Configure the cell... cell.textLabel.text = @"test....."; UIImage * img = [UIImage imageNamed: @"sampleImage"]; UIImageView * customImageView = (UIImageView*) [cell viewWithTag: IMG_TAG]; // two cases: // 1) we got a "recycled" cell, so we already have an image view added // 2) we got a "new" cell, so we must create, add image view AND TAg // in both cases we will set image if (customImageView){ // case 1 // nothing special }else{ // case 2: // add and tag: customImageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 2, 30, 30)]; [cell addSubview: customImageView]; customImageView.tag = IMG_TAG; } customImageView.image = img; return cell; }

pls review y upvote :)