我正在使用PureLayout来创建约束
cellForItemAtIndexPath
中的
if (!_itemDetails){
_itemDetails = cell.itemDetails;
_itemDetailsConstraint = [_itemDetails autoPinEdge:ALEdgeBottom toEdge:ALEdgeBottom ofView:cell.imageView];
}
然后在scrollDidView
float scrollViewHeight = self.collectionView.frame.size.height;
float scrollOffset = self.collectionView.contentOffset.y;
if(_itemDetails){
if (scrollOffset + scrollViewHeight < CGRectGetMaxY(_frontImageView.frame)){
_itemDetailsConstraint.constant = CGRectGetMaxY(_frontImageView.frame) - (scrollOffset + scrollViewHeight);
}
else{
_itemDetailsConstraint.constant = 0;
}
}
[_itemDetails.superview layoutIfNeeded];
尽管在调试时,我可以看到约束的常量已经改变,视图没有更新到新位置。
我也试过
[self.view layoutIfNeeded]
和
[self.collectionView layoutIfNeeded]
如何更新视图(_itemDetails
,它指向CollectionViewCell
)位置的视图?
答案 0 :(得分:0)
[collectionView reloadData];
如果你的约束是在集合中创建或更新:cellForItemAtIndexPath :,你可以重新加载所有单元格。