【发布时间】:2015-12-17 23:53:02
【问题描述】:
在我的应用中,我有一个固定比例 (16x9) 的自定义 tableViewCells。为了实现这一点,我在单元格中放置了一个视图,将其固定到其父视图(尽管我在界面生成器中完成了它:V/H:|-[innerView]-|)。
另外,我对其进行了比率约束。
在我的 tableViewController 中,我使用 UITableViewAutomaticDimension 作为表格单元格高度。
估计的行高为 180,这是单元格在 320 像素宽的显示器上的确切大小(正如我所见,我就是这样做的)。
我仍在为 8.4 进行部署,但在装有 iOS 9 的设备上运行项目时,我收到大量自动布局警告,尽管一切正常且看起来很完美。
警告本身是绝对正确的。有两个约束是我不想要的——iOS 自己添加的。
2015-09-29 11:24:57.771 app[1039:324736] 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)
(
"<NSLayoutConstraint:0x147d3e0d0 UIView:0x14901ff70.height == 0.5625*UIView:0x14901ff70.width>",
"<NSLayoutConstraint:0x147dd0210 H:|-(0)-[UIView:0x14901ff70] (Names: '|':UITableViewCellContentView:0x14901f960 )>",
"<NSLayoutConstraint:0x147deeca0 V:|-(0)-[UIView:0x14901ff70] (Names: '|':UITableViewCellContentView:0x14901f960 )>",
"<NSLayoutConstraint:0x149053c30 V:[UIView:0x14901ff70]-(0)-| (Names: '|':UITableViewCellContentView:0x14901f960 )>",
"<NSLayoutConstraint:0x147dbc2b0 H:[UIView:0x14901ff70]-(0)-| (Names: '|':UITableViewCellContentView:0x14901f960 )>",
"<NSLayoutConstraint:0x149070800 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x14901f960(179.5)]>",
"<NSLayoutConstraint:0x1490707b0 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14901f960(320)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x147d3e0d0 UIView:0x14901ff70.height == 0.5625*UIView:0x14901ff70.width>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
我在这里看到的唯一东西是 iOS 神奇地减去了 0.5 个像素。
【问题讨论】:
-
我在这里看到的唯一的东西是 iOS 以某种方式神奇地减去了丢失的 0.5 个像素?这个信息在哪里?
-
@somexyz 读取记录的约束:
V:[UITableViewCellContentView:0x14da0ff60(179.5)]
标签: ios uitableview ios9