我正在尝试使用UITableViewAutomaticDimension,但在不引起NSLayoutAutomaticSizeConstraint...问题的情况下,要使单元格完全宽度和正确的高度是有困难的。如果关闭单元格上的自动大小约束,则它不是完全宽度。

我有两个按钮,具有对内容视图的水平和垂直约束。它们之间有一个垂直间距约束,每个按钮都有一个高度约束。
如果我关闭AutoResizingMask,我会得到一个不完全宽度的单元格.如果我保持它,我得到布局约束违反,但事情呈现正确。
我怎么才能得到我想要的行为?
translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7f856b169650 V:[UIButton:0x7f856b16a510'+(null)'(50)]>",
"<NSLayoutConstraint:0x7f856b173dd0 UIButton:0x7f856b16a510'+(null)'.top == UITableViewCellContentView:0x7f856b16bfa0.topMargin>",
"<NSLayoutConstraint:0x7f856b173e70 UITableViewCellContentView:0x7f856b16bfa0.bottomMargin == UITextField:0x7f856b16c4f0.bottom>",
"<NSLayoutConstraint:0x7f856b174520 V:[UIButton:0x7f856b16a510'+(null)']-(8)-[UITextField:0x7f856b16c4f0]>",
"<NSLayoutConstraint:0x7f856b182a10 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7f856b16bfa0(66)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f856b169650 V:[UIButton:0x7f856b16a510'+(null)'(50)]>实际上看起来宽度是由
- (CGSize)intrinsicContentSize {
return CGSizeMake(320, 66);
}如果不设置内部内容大小,则不会得到任何宽度或高度。
发布于 2014-12-05 15:57:47
编辑:这绝对是两个高度限制。尝试删除一个,或降低优先级。
发布于 2014-11-30 01:09:00
AutoresizingMask on =允许此视图的父级设置适当的掩码。
AutoresizingMask off =不允许此视图的父级设置适当的掩码。我想自己做。
如果在IB中创建视图,默认情况下将其autoresizingMasks设置为“否”。
如果在代码中创建视图,则默认情况下将其autoresizingMasks设置为Yes。
当关闭AutoresizingMask时,会得到一个不完全宽度的单元格(或任何行为更改),这意味着单元格或表的父单元格(在视图层次结构中)很可能正在接管并设置约束(这不是您想要的)。
现在,我认为您要获得这个不完全宽度的单元格的原因是,当您在视图元素之间拖动以设置约束,而不是将约束绑定到顶部、底部等时,IB中有一个恼人的默认设置。
因此,您需要从“文档大纲”中选择约束:

,然后逐个选择绑定到边框的约束:

,并确保不选中“相对于空白”。。

如果您在IB的右下角使用摘要约束选项卡(从左开始第二个),您可以在创建约束时取消选择“约束到边距”:


发布于 2016-04-24 00:56:42
我也有类似的问题:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}它向我抛出了一个“无法满足约束”的日志,但是没有任何约束误导,所以我添加了estimatedHeightForRowAtIndexPath:
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}然后就修好了
https://stackoverflow.com/questions/27204451
复制相似问题