如何调整调整UICollectionView的Autolayout位置?

时间:2016-02-05 10:42:24

标签: ios objective-c autolayout

我有以下设置,其中位于两个标题之间的UICollectionView调整大小以适合其所有单元格。它基本上是表格格式的2x2布局。

enter image description here

现在加载数据后,我使用以下内容调整UICollectionView的大小。

- (void)loadContent {

[self.collectionViewAboutProperty reloadData];

[self.labelAddress setText:stringAddress];

float totRows = [self.dictAboutProperty count];

float cHeight = ceil(totRows/2.0);

float collectionHeight = (cHeight * 20) + (cHeight * 5);

[self.collectionViewAboutProperty setFrame:CGRectMake(self.collectionViewAboutProperty.frame.origin.x, self.collectionViewAboutProperty.frame.origin.y, self.collectionViewAboutProperty.frame.size.width, collectionHeight)];

}

问题在于,当发生上述情况时,它会与底部标题重叠。几乎就好像完全忽略了对底部标题的Autolayout约束。在那一刻,我将它设置为距离上面UICollectionView

大约25像素的空间

我怎样才能这样做,以便在加载内容并且调整集合视图的大小时,下面的视图会自行更新以满足约束条件?

由于

1 个答案:

答案 0 :(得分:1)

[self.labelAddress setText:stringAddress];

float totRows = [self.dictAboutProperty count];

    float cHeight = ceil(totRows/2.0);

    float collectionHeight = (cHeight * 20) + (cHeight * 5);

    [self.collectionViewAboutProperty setFrame:CGRectMake(self.collectionViewAboutProperty.frame.origin.x, self.collectionViewAboutProperty.frame.origin.y, self.collectionViewAboutProperty.frame.size.width, collectionHeight)];
    [self.collectionViewAboutProperty reloadData];

将解决您的问题。