具有自动布局的UITableViewCell-contentView宽度约束失败

blo

我在iOS 8中使用动态大小的tableViewCell时遇到问题,尽管看起来不错,但我得到的日志输出带有AutoLayout错误。我将其简化为这个简单的示例。

我将UILabel添加到我的单元格:

self.titleLabel = [[UILabel alloc] init];
self.titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
self.titleLabel.numberOfLines = 0;
self.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
[self.contentView addSubview:self.titleLabel];

我在代码中创建我的自动布局的限制,采用砌体updateConstraints

[self.titleLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[self.titleLabel updateConstraints:^(MASConstraintMaker *make) {
    make.leading.equalTo(self.contentView.leading).with.offset(padding.left);
    make.trailing.equalTo(self.contentView.trailing).with.offset(-padding.right);
    make.top.equalTo(self.contentView.top).with.offset(padding.top);
    make.bottom.equalTo(self.contentView.bottom).with.offset(-padding.bottom / 2);
}];

(我可以使用make.edges一步完成此操作,但是问题是相同的)

最初看起来很正常。然后,当我对tableview进行任何修改并调用[tableView endUpdates](大概是触发updateContraints)时,我将在控制台日志中得到以下内容:

Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<MASLayoutConstraint:0x7ff4842551e0 UILabel:self.titleLabel.leading == UITableViewCellContentView:self.contentView.leading + 12>",
    "<MASLayoutConstraint:0x7ff484255240 UILabel:self.titleLabel.trailing == UITableViewCellContentView:self.contentView.trailing - 12>",
    "<NSLayoutConstraint:0x7ff484256df0 UITableViewCellContentView:self.contentView.width ==>"
)

Will attempt to recover by breaking constraint 
<MASLayoutConstraint:0x7ff484255240 UILabel:self.titleLabel.trailing == UITableViewCellContentView:self.contentView.trailing - 12>

我不明白这里存在​​的问题-我希望标签具有填充,但是为什么这与contentView的整体宽度冲突?

编辑1:

如果我删除了填充,我将不再收到错误。还有其他设置方法吗?

汗夫

您具有三个具有相同优先级的约束,这会使系统完全困惑于如何满足它们。“”,“”,“”

由于单元格的宽度也根据设备的宽度而固定,因此我建议对子视图的约束使用一些较弱的优先级。

[self.titleLabel updateConstraints:^(MASConstraintMaker *make) {
    make.leading.equalTo(self.contentView.leading).with.offset(padding.left).priority(999);
    make.trailing.equalTo(self.contentView.trailing).with.offset(-padding.right).priority(999);
    make.top.equalTo(self.contentView.top).with.offset(padding.top);
    make.bottom.equalTo(self.contentView.bottom).with.offset(-padding.bottom / 2);
}];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有自动布局约束的UITableViewCell子类大小不正确

来自分类Dev

具有自动布局的UITableViewCell中动态调整大小的UIWebView-违反约束

来自分类Dev

具有相对约束的自动布局不会影响systemLayoutSizeFittingSize:用于UITableViewCell

来自分类Dev

具有自动布局的UITableViewCell中动态调整大小的UIWebView-违反约束

来自分类Dev

断言失败-UITableViewCell内部的CollectionView具有自动布局和自定义UICollectionViewFlowLayout

来自分类Dev

断言失败-具有自动布局和自定义UICollectionViewFlowLayout的UITableViewCell内的CollectionView

来自分类Dev

缩进UITableViewCell中的所有自动布局约束

来自分类Dev

Swift-UITableViewCell类contentView以编程方式约束没有宽度

来自分类Dev

具有动态变量的自动布局约束?

来自分类Dev

具有自动布局约束的UIView动画更改

来自分类Dev

如何隐藏具有纵横比自动布局约束的UIImageView?

来自分类Dev

自动布局= ViewWillAppear具有错误的视图宽度

来自分类Dev

具有相对宽度/高度的IOS8自动布局

来自分类Dev

UITableViewCell中的UIImageView的自动布局约束

来自分类Dev

UITableViewCell中的UIImageView的自动布局约束

来自分类Dev

使用自动布局约束以编程方式创建四个具有相同高度和宽度的UIView

来自分类Dev

使用自动布局约束以编程方式创建四个具有相同高度和宽度的UIView

来自分类Dev

约束布局-具有最大宽度的两个视图

来自分类Dev

在具有特定约束的滚动视图中显示图像(具有自动布局)

来自分类Dev

在具有特定约束的滚动视图中显示图像(具有自动布局)

来自分类Dev

在UITableViewCell中检测具有灵活宽度的视图的最终布局大小

来自分类Dev

UIScrollView自动布局不起作用contentView的宽度

来自分类Dev

具有布局约束的UicollectionView

来自分类常见问题

UITableViewCell中的iOS7上的自动布局约束问题

来自分类Dev

UITableViewCell子视图不遵守自动布局约束

来自分类Dev

由于分隔线的高度,UITableViewCell自动布局约束问题

来自分类Dev

UITableViewCell子视图不遵循自动布局约束

来自分类Dev

创建具有自动布局约束的3x3网格

来自分类Dev

如何计算从具有自动布局纵横比约束的xib加载的UICollectionViewCell的大小?

Related 相关文章

  1. 1

    具有自动布局约束的UITableViewCell子类大小不正确

  2. 2

    具有自动布局的UITableViewCell中动态调整大小的UIWebView-违反约束

  3. 3

    具有相对约束的自动布局不会影响systemLayoutSizeFittingSize:用于UITableViewCell

  4. 4

    具有自动布局的UITableViewCell中动态调整大小的UIWebView-违反约束

  5. 5

    断言失败-UITableViewCell内部的CollectionView具有自动布局和自定义UICollectionViewFlowLayout

  6. 6

    断言失败-具有自动布局和自定义UICollectionViewFlowLayout的UITableViewCell内的CollectionView

  7. 7

    缩进UITableViewCell中的所有自动布局约束

  8. 8

    Swift-UITableViewCell类contentView以编程方式约束没有宽度

  9. 9

    具有动态变量的自动布局约束?

  10. 10

    具有自动布局约束的UIView动画更改

  11. 11

    如何隐藏具有纵横比自动布局约束的UIImageView?

  12. 12

    自动布局= ViewWillAppear具有错误的视图宽度

  13. 13

    具有相对宽度/高度的IOS8自动布局

  14. 14

    UITableViewCell中的UIImageView的自动布局约束

  15. 15

    UITableViewCell中的UIImageView的自动布局约束

  16. 16

    使用自动布局约束以编程方式创建四个具有相同高度和宽度的UIView

  17. 17

    使用自动布局约束以编程方式创建四个具有相同高度和宽度的UIView

  18. 18

    约束布局-具有最大宽度的两个视图

  19. 19

    在具有特定约束的滚动视图中显示图像(具有自动布局)

  20. 20

    在具有特定约束的滚动视图中显示图像(具有自动布局)

  21. 21

    在UITableViewCell中检测具有灵活宽度的视图的最终布局大小

  22. 22

    UIScrollView自动布局不起作用contentView的宽度

  23. 23

    具有布局约束的UicollectionView

  24. 24

    UITableViewCell中的iOS7上的自动布局约束问题

  25. 25

    UITableViewCell子视图不遵守自动布局约束

  26. 26

    由于分隔线的高度,UITableViewCell自动布局约束问题

  27. 27

    UITableViewCell子视图不遵循自动布局约束

  28. 28

    创建具有自动布局约束的3x3网格

  29. 29

    如何计算从具有自动布局纵横比约束的xib加载的UICollectionViewCell的大小?

热门标签

归档