我正在尝试实现一个简单的今天小部件,其中包含一个具有固定高度的标签。
在文档中它说:
如果小部件有额外的内容要显示,您可以依靠自动布局约束来适当地调整小部件的高度。
但是,我不断收到“无法同时满足约束”的警告。
这是我尝试过的:
- 创建一个新的“Today Extension”目标,它创建带有“Hello World”标签和视图控制器的故事板。
- 将高度约束设置为“Hello World”标签。
当我跑步时,我得到:
2014-09-18 21:13:07.123 TestWidget[23381:871330] 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:0x7f87c31126d0 V:[UILabel:0x7f87c3113230'Hello World Fixed Height'(21)]>",
"<NSLayoutConstraint:0x7f87c30235b0 V:[_UILayoutGuide:0x7f87c30222b0]-(NSSpace(8))-[UILabel:0x7f87c3113230'Hello World Fixed Height']>",
"<NSLayoutConstraint:0x7f87c3023600 V:[UILabel:0x7f87c3113230'Hello World Fixed Height']-(NSSpace(8))-[_UILayoutGuide:0x7f87c3022f00]>",
"<_UILayoutSupportConstraint:0x7f87c3021980 V:[_UILayoutGuide:0x7f87c30222b0(0)]>",
"<_UILayoutSupportConstraint:0x7f87c30218a0 V:|-(0)-[_UILayoutGuide:0x7f87c30222b0] (Names: '|':UIView:0x7f87c3112f20 )>",
"<_UILayoutSupportConstraint:0x7f87c3023360 V:[_UILayoutGuide:0x7f87c3022f00(0)]>",
"<_UILayoutSupportConstraint:0x7f87c3023300 _UILayoutGuide:0x7f87c3022f00.bottom == UIView:0x7f87c3112f20.bottom>",
"<NSLayoutConstraint:0x7f87c3326710 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7f87c3112f20(628)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f87c31126d0 V:[UILabel:0x7f87c3113230'Hello World Fixed Height'(21)]>
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.
我究竟做错了什么?使用自动布局创建具有固定高度的小部件的正确方法是什么?