UILayoutConstraint创建了屏幕外的约束

时间:2014-12-05 18:01:48

标签: ios uitableview nslayoutconstraint

我的tableview单元格是三个标签和一个uistepper但是如果第一个标签中的文本太长,它只会移动所有其他视图,使步进器离开屏幕。以下是我的约束:

[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[name(>=price@750)]-[price(==60)]-[quantity(==20)]-[stepper]-15-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[name]-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[price]-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[quantity]-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:views]];
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.stepper
                                                             attribute:NSLayoutAttributeCenterY
                                                             relatedBy:0
                                                                toItem:self.quantity
                                                             attribute:NSLayoutAttributeCenterY
                                                            multiplier:1.0f
                                                              constant:0.0f]];

我的标签创建是:

UILabel* label = [UILabel new];
label.translatesAutoresizingMaskIntoConstraints = NO;
label.adjustsFontSizeToFitWidth = YES;
[label setMinimumScaleFactor:0.5f];
[self.contentView addSubview:label];
return label;

如果我有以下文本,则fontSize默认为17.然后步进器被推离屏幕而不是字体收缩。

cell.name.text = @"this is my label";
cell.price.text = @"puddle";
cell.quantity.text = @"ha";

id发布图片,但我没有足够的声望点。但基本上它就像内容视图大于实际屏幕宽度,并将步进器推离屏幕。

1 个答案:

答案 0 :(得分:0)

您需要为标签添加抗压优先级。如:

[self.name setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizo​​ntal];