我正在使用UICollectionView和子类化单元格。单元格从xib加载,我在其中布局了几个子视图。在单元格内部,我有一个BOOL,可以更改其中一个子视图。在iOS上这是有效的。但是在约束更改后的iOS 7上,此子视图的位置是错误的。如果我在控制台中记录了信息,则约束设置为0,但框架显示为188。
我知道有一个关于contentView大小调整的错误,我通过设置自动调整掩码很好地处理了这个错误。但是这个问题呢。
这是该子视图的约束:
因此,当BOOL设置为YES时,代码内部的topConstraint设置为0到(-self.thisSubview.bounds.size.height)。
如果我记录了界限高度,它会告诉我它的130,所以origin.x现在应该是-130但实际上是-188。
这是我更改contstaint的代码:
- (void)setHasInfo:(BOOL)hasInfo {
if (hasInfo) {
self.infoViewTopCon.constant = 0;
[self layoutIfNeeded];
}
else {
self.infoViewTopCon.constant = - self.infoView.bounds.size.height + 4.0;
[self layoutIfNeeded];
}
_hasInfo = hasInfo;
}
答案 0 :(得分:0)
更新NSLayoutConstraints
以使其正常工作。