uitableviewcell inside didselectitematindexpath ios uicollectionview uicollectionviewcell

ios - didselectitematindexpath - uicollectionview inside uitableviewcell



UICollectionView agregando UICollectionCell (3)

Cuando intento colocar UICollectionCell en UICollectionView en Interface Builder, no puedo explicarlo por razones desconocidas. La celda va a la barra de herramientas sin agregar a UICollectionView

Estoy usando:

  • iOS SDK 6.0
  • XCode 4.5.1
  • No uso Storyboard

Bueno. En realidad, hay una solución para esto, si realmente desea tener la celda en collectionView dentro del archivo xib desde el constructor de la interfaz:

  1. Crea un guión gráfico.
  2. Cree el UICollectionView y el UICollectionViewCell del constructor de interfaz.
  3. Ajuste la interfaz de usuario con restricciones, etc. para que se vea exactamente lo que quería que fuera.
  4. Crea un nuevo archivo xib.
  5. Copie todo dentro del guión gráfico al nuevo archivo xib.

Funcionará perfectamente

  • Una cosa a tener en cuenta es que el paso # 3 es muy importante, porque después del # 5 no se supone que debes arrastrar y mover el UICollectionView; si lo haces, la celda desaparecerá mágicamente. Aparte de eso, funcionará perfectamente.

No puede poner UICollectionViewCell directamente en UiCollectionView si está usando un archivo Xib . Es posible solo en el guión gráfico. Agregue un UICollectionViewCell en un archivo Xib separado. Dale tu nombre de clase. A continuación, registre cualquier clase o xib antes de que aparezca la vista de colección

[self.collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:CELL_ID];

Por lo general, esto se hace en viewDidLoad .

Esta es la implementación de una UICollectionViewCell personalizada sin usar Xib

@implementation CollectionViewCell @synthesize imageView = _imageView; - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor whiteColor]; self.layer.shadowColor = [UIColor blackColor].CGColor; self.layer.shadowRadius = 5.0f; self.layer.shadowOffset = CGSizeMake(2.0f, 2.0f); self.layer.shadowOpacity = 0.5f; // Selected background view UIView *backgroundView = [[UIView alloc]initWithFrame:self.bounds]; backgroundView.layer.borderColor = [[UIColor colorWithRed:0.529 green:0.808 blue:0.922 alpha:1]CGColor]; backgroundView.layer.borderWidth = 10.0f; self.selectedBackgroundView = backgroundView; // set content view CGRect frame = CGRectMake(self.bounds.origin.x+5, self.bounds.origin.y+5, self.bounds.size.width-10, self.bounds.size.height-10); UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame]; self.imageView = imageView; [imageView release]; self.imageView.contentMode = UIViewContentModeScaleAspectFill ; self.imageView.clipsToBounds = YES; [self.contentView addSubview:self.imageView]; } return self; }


Solo UICollectionView dentro de StoryBoard tiene UICollectionViewCell adentro. Si usa XIB, cree un nuevo XIB con CellName.xib, agregue CollectionViewCell, especifique el nombre de la clase personalizada UICollectionView. Después de eso use registerNib.

Código de muestra: https://github.com/lequysang/TestCollectionViewWithXIB