我有一个自定义单元格,其中包含UILabel
,UIButton
和UIImageView
。
您可以看到第三行右侧(按钮控件 - selectionButton
)缩小,因为按钮标题太长而无法容纳。
此处的具体要求是根据该按钮的长或短标题增加按钮和单元格高度。
浪费了很多时间后,我无法找出约束条件。
以下是上述自定义单元格排列的当前约束:
// Constraints
NSDictionary *views = @{@"titleLabel" : self.titleLabel, @"selectionButton" : self.selectionButton, @"arrowImage" : self.arrowImage};
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-15-[titleLabel]-15-|" options: 0 metrics:nil views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[selectionButton]|" options:0 metrics:nil views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[arrowImage(10)]" options:0 metrics:nil views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[titleLabel]-2-[selectionButton]-5-[arrowImage(10)]-10-|" options: 0 metrics:nil views:views]];
NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.contentView attribute:NSLayoutAttributeWidth multiplier:0.55 constant:0];
[self.contentView addConstraint:constraint1];
NSLayoutConstraint *constraint2 = [NSLayoutConstraint constraintWithItem:self.selectionButton attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.contentView attribute:NSLayoutAttributeWidth multiplier:0.45 constant:0];
[self.contentView addConstraint:constraint2];
答案 0 :(得分:1)
如果你正在做的话,你的约束对我来说很好:
tableview.rowHeight = UITableViewAutomaticDimension
使selectionButton
titleLabel
允许多行
self.selectionButton.titleLabel.numberOfLines = 0;
self.selectionButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;