Estoy tratando de conseguir un UICollectionView para mostrar dentro de un modalmente presentado controlador de vista. La aplicación para iPad iOS 7.

He creado subclase de UIViewController (con una punta) y agregó:

MyViewController *controller = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.modalPresentationStyle = UIModalPresentationFullScreen;
navController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

[self presentViewController:navController animated:YES completion:nil];

Este punto de vista controlador es ser el delegado y el origen de datos para mi UICollectionView así que lo he añadido UICollectionViewDataSource y UICollectionViewDelegate a la cabecera.

He puesto un UICollectionView en la punta y se añade una toma de corriente para MyViewController:

@property (strong, nonatomic) IBOutlet MyCollectionView *collectionViewController;

He agregado esta en viewDidLoad en MyViewController:

self.collectionViewController.dataSource = self;
self.collectionViewController.delegate = self;

También he añadido la siguiente MyViewController:

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    NSLog(@"Items in section: %d", itemsArray.count); //returns correct amount

    return itemsArray.count;
}


- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"cellForItemAtIndexPath %@", indexPath); //returns as expected

    static NSString *identifier = @"MyCell";

    [self.collectionViewController registerClass:[MyCollectionCell class] forCellWithReuseIdentifier:identifier];

    MyCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    UIImageView *myImageView = (UIImageView *)[cell viewWithTag:100];
    myImageView.image = [UIImage imageNamed:[itemsArray objectAtIndex:indexPath.row]];

    return cell;
}

También he establecido una subclase de UICollectionViewCell con el identificador de conjunto de MyCell y añadió que a un UIImageView con la etiqueta 100.

Siempre que puedo traer hasta este punto de vista controlador me estoy poniendo en la barra de navegación como se esperaba, pero el UICollection ver he añadido a mi plumín está en ninguna parte ser visto. Todo lo que estoy viendo es de color negro, donde la vista de colección debe ser. Si puedo cambiar el color de fondo de MyCollectionView de forma predeterminada blanco, veo blanco donde la vista de colección debe ser. Parece ser que la crianza de MyCollectionView, pero no muestra ninguna de las celdas.

OriginalEl autor beev | 2013-09-30

2 Comentarios

  1. 20

    Si el enlace de las collectionView y su propio origen y delegado en la xib archivo, no es necesario configurar esto en el código.

    Siguiente, usted debe registrar su UICollectionViewCell :

    - (void)viewDidLoad 
    {
        [super viewDidLoad];
    
        //Register Nib
        [self.collectionView registerNib:[UINib nibWithNibName:CollectionViewCell_XIB bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:CollectionViewCell_ID];
    }

    CollectionViewCell_XIB es el nombre de su celda xib
    CollectionViewCell_ID es el ID de tu celular

    Y necesita implementar cellForItemAtIndexPath como este :

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
        CollectionViewCell *cell = (CollectionViewCell *)[self.collectionView dequeueReusableCellWithReuseIdentifier:CollectionViewCell_ID forIndexPath:indexPath];
    
        //Configure cell with data
         UIImageView *myImageView = (UIImageView *)[cell viewWithTag:100];
        myImageView.image = [UIImage imageNamed:[itemsArray objectAtIndex:indexPath.row]];
    
        //Return the cell
        return cell;
    }
    Totalmente impresionante, señor. Gracias!
    eres bienvenido 😉 no dude en para añadir +1 :p

    OriginalEl autor

  2. 25

    Otro punto de interés es que si se establece la celda del identificador en la punta o guión gráfico, no se registra la punta/clase en la colección de controlador de vista. Hacer una o la otra, pero no ambas.

    Increíble, me encontré con el mismo problema ya esta resuelto.
    Ese era el problema para mí. Thx
    ESTA!!!!!! omg no lo puedo creer

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here