我正在尝试通过在加载视图控制器时将其设置为0来调整UICollectionView高度,然后在按下按钮时使用动画增加其大小。我尝试了一些不同的东西,但它的大小根本没有变化。以下是我尝试将其高度更改为0的所有不同内容:
CGRect bounds = [self.collectionView bounds];
[self.collectionView setBounds:CGRectMake(bounds.origin.x,
bounds.origin.y,
bounds.size.width,
bounds.size.height - 100)];
...
CGRect frame = [self.collectionView frame];
[self.collectionView setFrame:CGRectMake(frame.origin.x,
frame.origin.y,
frame.size.width,
frame.size.height - 100)];
...
CGRect frame = self.collectionView.frame;
frame.size.height -= 100;
self.collectionView.frame = frame;
...
self.collectionView.clipsToBounds = YES;
self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
答案 0 :(得分:4)
如果您使用Interface Builder进行UICollectionView初始化,请在创建CollectionView的xib文件中的File Inspector中关闭“Use Autolayout”。然后,您可以使用setFrame或setBounds方法更改高度。
答案 1 :(得分:2)
您可以通过为高度约束创建出口然后在代码中调整约束的常量来避免禁用Autolayout。
<强>出口强>
@IBOutlet weak var collectionViewVerticalConstraint: NSLayoutConstraint!
<强>调整强>
collectionViewVerticalConstraint.constant = 0