UICollectionViewCell子视图位置错误(autolayout)

时间:2015-01-11 18:23:36

标签: ios uicollectionview autolayout uicollectionviewcell nslayoutconstraint

我正在使用UICollectionView和子类化单元格。单元格从xib加载,我在其中布局了几个子视图。在单元格内部,我有一个BOOL,可以更改其中一个子视图。在iOS上这是有效的。但是在约束更改后的iOS 7上,此子视图的位置是错误的。如果我在控制台中记录了信息,则约束设置为0,但框架显示为188。

我知道有一个关于contentView大小调整的错误,我通过设置自动调整掩码很好地处理了这个错误。但是这个问题呢。

这是该子视图的约束:
constraints

因此,当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;
}

1 个答案:

答案 0 :(得分:0)

更新NSLayoutConstraints以使其正常工作。

image1