我想改变我的 UICollectionViewCell 的大小
在 Interface Builder 中,我设置了自定义大小
在我的代码中,我想更改单元格的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(274, 274);
}
将来我需要不同大小的单元格
在我的牢房里,我有下一个方法
- (void)awakeFromNib
{
backImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height / 1.32)];
[self addSubview:backImageView];
lineImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, backImageView.height, self.width, self.height / 9.67)];
[self addSubview:lineImageView];
nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(28, lineImageView.originY + 5, self.width - 28, 15)];
nameLabel.font = [UIFont fontWithName:FontStyleBold size:14];
[self addSubview:nameLabel];
descriptLabel = [[UILabel alloc] initWithFrame:CGRectMake(nameLabel.originX, lineImageView.originY + lineImageView.height + 3, nameLabel.width - nameLabel.originX, 25)];
descriptLabel.numberOfLines = 2;
descriptLabel.font = [UIFont fontWithName:FontStyle size:8];
[self addSubview:descriptLabel];
self.backgroundColor = [UIColor whiteColor];
self.layer.masksToBounds = NO;
self.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-1, 2.0, self.width + 2, self.height + 2) cornerRadius:0.f].CGPath;
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowOpacity = .4f;
self.layer.shadowRadius = 2.0f;
}
在模拟器中我有下一个不好的结果
如果我在 Interface Builder 中设置大小
在模拟器中一切都好
我认为下一个方法必须改变单元格的大小,但它改变了项目的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(274, 274);
}
那么如何在没有 Interface Builder 帮助的情况下以编程方式更改 UICollectionViewCell 的大小呢?