我正在使用带有 uicollectionvieww 的 uiviewcontroller,我在互联网上搜索了如何自定义总 uicollectionview 的高度。现在我将uicollectionview设置为高度> = 1(我正在使用自动布局)然后在我的.m文件中我尝试了:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(160, 160)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[flowLayout setMinimumInteritemSpacing:0];
[flowLayout setMinimumLineSpacing:0];
NSInteger itemCount = [self.collectionView numberOfItemsInSection:0];
[flowLayout setItemSize:CGSizeMake(self.collectionView.frame.size.width, 160 * itemCount)];
[self.collectionView setCollectionViewLayout:flowLayout];
NSLog(@"%f", self.collectionView.frame.size.height);
但是在 NSLog 中仍然向我显示高度为 1...我如何将我的 uicollectionview 的高度设置为自定义高度(基于部分中的元素 * 160)。有什么建议吗?谢谢。
编辑: 我在哪里创建单元格:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
GalleryCell *cell = (GalleryCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"GalleryCell" forIndexPath:indexPath];
NSDictionary *photo = [self.beachImages objectAtIndex:indexPath.row];
[cell.imageView setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", [photo objectForKey:@"original_url"]]] placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]];
return cell;
}
编辑: 也许问题是我使用自动布局?这是我的约束:http ://cl.ly/image/2l0M432w0U1V 编辑: 我尝试通过代码添加约束:
[self.collectionView removeConstraints:self.collectionView.constraints];
NSLayoutConstraint *con1 = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:320];
[self.collectionView addConstraints:@[con1]];
但不显示我的细胞...