3

我正在使用带有 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]];

但不显示我的细胞...

4

0 回答 0