AutoLayout 抱怨 2 个没有边框的 UITextFields 的约束

AutoLayout complains about constraints for 2 UITextFields with no borders

我正在尝试构建只有 2 个文本字段和 2 个按钮的登录视图。我正在应用 "Add Missing Constraints" 属性 以便 Xcode 将相应的约束应用于情节提要中我的 LoginViewController 中的所有元素。我将我的应用限制为 运行 仅在纵向模式下,因此我使用 "wCompact hRegular" 设置。

每当我 运行 我的应用程序并使用 segue 转换到我的 LoginViewController 时,我的应用程序只显示一个文本字段,并在控制台中显示一堆关于自动布局的错误。

我试图实现的功能是提供一个类似于新的 Parse 登录屏幕的登录屏幕。那是有两个没有边框的文本字段,只显示用户名文本字段的底部边框,因此它可以将它与密码文本字段分开,如下所示:

到目前为止,这是我的应用在 运行s:

时的样子

它应该是这样的:

这是控制台中出现的错误:

2015-06-14 20:40:21.480 MyApp[71158:3600335] 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) 
(
    "<_UILayoutSupportConstraint:0x7f9ff3f6d260 V:[_UILayoutGuide:0x7f9ff3f7a140(20)]>",
    "<_UILayoutSupportConstraint:0x7f9ff3f087a0 V:|-(0)-[_UILayoutGuide:0x7f9ff3f7a140]   (Names: '|':UIView:0x7f9ff3f7a030 )>",
    "<_UILayoutSupportConstraint:0x7f9ff3f24730 V:[_UILayoutGuide:0x7f9ff3f7a2a0(0)]>",
    "<_UILayoutSupportConstraint:0x7f9ff3f71640 _UILayoutGuide:0x7f9ff3f7a2a0.bottom == UIView:0x7f9ff3f7a030.bottom>",
    "<NSLayoutConstraint:0x7f9ff3f6b9e0 V:[UITextField:0x7f9ff3f782a0]-(NSSpace(8))-[UITextField:0x7f9ff3f7a3d0]>",
    "<NSLayoutConstraint:0x7f9ff3f58a40 V:[UIButton:0x7f9ff3f7ab00'Login']-(331)-[_UILayoutGuide:0x7f9ff3f7a2a0]>",
    "<NSLayoutConstraint:0x7f9ff3f28b60 V:[_UILayoutGuide:0x7f9ff3f7a140]-(237)-[UITextField:0x7f9ff3f782a0]>",
    "<NSLayoutConstraint:0x7f9ff3f34180 V:[UIButton:0x7f9ff3f7ad20'I forgot my password']-(49)-[UIButton:0x7f9ff3f7ab00'Login']>",
    "<NSLayoutConstraint:0x7f9ff3f341d0 V:[UITextField:0x7f9ff3f7a3d0]-(35)-[UIButton:0x7f9ff3f7ad20'I forgot my password']>",
    "<NSLayoutConstraint:0x7f9ff3f29f90 V:[UITextField:0x7f9ff3f782a0(30)]>",
    "<NSLayoutConstraint:0x7f9ff3f055a0 V:[UIButton:0x7f9ff3f7ad20'I forgot my password'(30)]>",
    "<NSLayoutConstraint:0x7f9ff3f055f0 V:[UIButton:0x7f9ff3f7ab00'Login'(30)]>",
    "<NSLayoutConstraint:0x7f9ff3cc3b80 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7f9ff3f7a030(667)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9ff3f055f0 V:[UIButton:0x7f9ff3f7ab00'Login'(30)]>

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.

有谁知道如何解决这个问题以及为什么它不起作用?我什至尝试手动添加所有约束,但它没有用。此外,如果我给我的文本字段设置圆角边框并使它们比情节提要的全宽小一点,它就会达到预期的效果。

提前感谢您的帮助。

干杯!

"Add Missing Constraints" 添加约束并不总是一个好主意。相反,您应该始终更喜欢手动添加约束...

这是您 UI 的图片...我使用了 wAnyhAny 布局,因为这是为通用设备添加约束的好习惯...

I used simply width constraint for textfield, rather you should Equal width to super view and add multiplier to resize width according to device width

这是不同尺寸的输出图像...