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 のサイズを変更するにはどうすればよいでしょうか?