Ios8 UICollectionViewCell中的UILabel高度错误
我在可重用UICollectionViewCell中遇到UILabel问题 标签可以放置在UICollectionViewCell框架的不同位置。 它可以有不同的字体大小,并且最多必须有3行(截尾) 为了做到这一点,我以编程方式删除了约束(可能是从另一个出列单元继承的),如下所示:Ios8 UICollectionViewCell中的UILabel高度错误,ios8,height,uilabel,uicollectionviewcell,nslayoutconstraint,Ios8,Height,Uilabel,Uicollectionviewcell,Nslayoutconstraint,我在可重用UICollectionViewCell中遇到UILabel问题 标签可以放置在UICollectionViewCell框架的不同位置。 它可以有不同的字体大小,并且最多必须有3行(截尾) 为了做到这一点,我以编程方式删除了约束(可能是从另一个出列单元继承的),如下所示: [self.lblPadName removeConstraints:self.lblPadName.constraints]; for (NSLayoutConstraint *constraint in self
[self.lblPadName removeConstraints:self.lblPadName.constraints];
for (NSLayoutConstraint *constraint in self.contentView.constraints) {
if (constraint.firstItem == self.lblPadName || constraint.secondItem == self.lblPadName) {
[self.contentView removeConstraint:constraint];
}
}
我以编程方式在contentView中添加了中心对齐、与底部的距离、垂直约束和水平约束,垂直约束的优先级为500(内容拥抱优先级垂直为1000,内容压缩阻力优先级垂直为1000)。
这里是如何添加垂直和水平约束的
[self.contentView addConstraint:[NSLayoutConstraint
constraintWithItem:self.lblPadName
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.contentView
attribute:NSLayoutAttributeWidth
multiplier:multiplier //0.92f
constant:0.0]];
NSArray *lblPadName_constraints_Height = [NSLayoutConstraint constraintsWithVisualFormat:[NSString stringWithFormat:@"V:[%@(%@@500)]", kTitleViewKey, kTitleKeyHeight] options:0 metrics:self.metrics views:self.viewsDictionary];
[self.lblPadName addConstraints:lblPadName_constraints_Height];
在情节提要中,我还设置了标签的preferredmaxlayoutwidth及其最大行数
每个单元格都由用户可以用来调整单元格大小的句柄提供(UICollectionView使用流布局)。
collectionView的数据源由NSFRC提供,NSFRC有一个委托,在模型更新时重新加载更改的项
在CellForRowatinex中,调用了出列单元格的setup方法,因此没有问题:文本正确地位于两行上
当我尝试调整单元格大小,系统将新大小保存在CoreData上时,令人沮丧的问题就出现了。
NSFRC调用它的委托,UICollectionView重新加载它的数据,但是UILabel现在具有我作为约束传递的高度,并且文本被迫在一行中。
似乎内容拥抱优先级垂直和内容压缩阻力优先级不会影响标签的高度
我用的是iOS8
如何使用约束、拥抱优先级垂直和内容压缩阻力优先级使UILabel绑定完全适合内部文本