我有一个视图控制器,其视图包含UICollectionView和UIImageView .
UICollectionView和图像视图是UIViewController的托管视图中的兄弟 . 当用户滚动UICollectionView时,UIImage有时应将其自身附加到其中一个UICollectionViewCell项的底部 .
我正在将项目转换为使用自动布局,我很高兴能够使用约束将UIImageView附加到UICollectionViewCell的底部 . 但是,它似乎没有起作用 .
当代码检测到相关的UICollectionViewCell变为可见时,它会从UIImageView中删除先前的定位约束,并添加一个约束,使UIImageView的顶部与UICollectionViewCell的底部相同 .
当发生这种情况时,UIImageView就会消失 . 我认为它在单元格可见之前被附加到UICollectionViewCell,但是没关系,它应该随之滚动到视图中 . 那没有发生 .
所以我的问题是这个......这可以吗?在我看来,UICollectionView很有可能使用老式的中心/边界系统来管理它的项目 . 特别是如果你看一下UICollectionViewLayout协议 . 这是否意味着我无法将约束附加到UICollectionViewCell并期望在集合视图中移动单元格时更新约束?
我正在附上下面的相关代码,以防它是一个简单的编码问题而不是更高级别的“你将回到绘图板” .
if([collectionView.indexPathsForVisibleItems containsObject:self.sliderPositionIndex]){
UICollectionViewCell *lockedCell=[collectionView cellForItemAtIndexPath:self.sliderPositionIndex];
[self.view removeConstraint:self.sliderVerticalSpaceConstraint];
self.sliderVerticalSpaceConstraint=[NSLayoutConstraint constraintWithItem:self.sliderTab
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:lockedCell
attribute:NSLayoutAttributeBottom
multiplier:1
constant:0];
[self.view addConstraint:self.sliderVerticalSpaceConstraint];
[self.view setNeedsUpdateConstraints];