UICollectionView
的设置是使用IB定义的(即滚动方向:水平等),并使用IB嵌入UITableViewCell
。
UICollectionViewCell
显示,图片显示但是,图像堆叠在一起,而不是每个cell
一张图像保真。
我为每张图片制作了个人UIImageView
作为实例变量,并使用switch
消息中的if和cellForItemAtIndexPath
语句进行了相同的操作。
由于使用了IB,因此识别错误可能是一个延伸,但是,如果代码中显而易见,请您帮助识别错误?感谢。
@implementation AccountTableViewCell - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state imageArray = @[[UIImage imageNamed:@"image1.png"], [UIImage imageNamed:@"image2.png"], [UIImage imageNamed:@"image3.png"], [UIImage imageNamed:@"image4.png"], [UIImage imageNamed:@"image5.png"]]; self.oCollectionView.dataSource = self; [self.oCollectionView setFrame:self.contentView.frame]; [self.contentView addSubview:self.oCollectionView]; self.oCollectionView.backgroundColor = [UIColor clearColor]; [self.oCollectionView reloadData]; } - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return imageArray.count; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"accountCell" forIndexPath:indexPath]; UIImageView* iv = [[UIImageView alloc] init]; [cell.contentView addSubview:iv]; [iv setFrame:cell.contentView.frame]; iv.image = imageArray[indexPath.row]; return cell; } @end
答案 0 :(得分:1)
这是因为您每次出列时都会向UIImageView
添加cell
。
相反,您应该继承UICollectionViewCell
(我们称之为“MYCollectionViewCell”,将UIImageView
添加到cell
中的storyboard
子类并设置{{1作为子类的出口。
然后,在UIImageView
内,将cellForItemAtIndexPath
图像设置为:
imageView's