iOS应用程序无法在iOS 6或更低版本上运行

时间:2013-09-01 09:57:37

标签: iphone ios objective-c autolayout

我正在手机上使用Xcode 5和iOS 7制作iPhone应用程序;该应用程序适用于iOS 7.但是,当我在iPhone 6.1模拟器上运行该应用程序时,我收到了此消息:

2013-09-01 10:46:30.075 Bars[30745:c07] 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) 
(
"<NSAutoresizingMaskLayoutConstraint:0x81b80a0 h=--- v=--- V:[UIWindow:0x8196f60(480)]>",
"<NSAutoresizingMaskLayoutConstraint:0x81b6910 h=-&- v=-&- UILayoutContainerView:0x8197530.height == UIWindow:0x8196f60.height>",
"<NSAutoresizingMaskLayoutConstraint:0x81b53b0 h=-&- v=-&- UITransitionView:0x75c0830.height == UILayoutContainerView:0x8197530.height - 49>",
"<NSAutoresizingMaskLayoutConstraint:0x81b40f0 h=-&- v=-&- UIViewControllerWrapperView:0x75f38e0.height == UITransitionView:0x75c0830.height>",
"<NSLayoutConstraint:0x75f5d10 V:[UILabel:0x75f6ee0(24)]>",
"<NSAutoresizingMaskLayoutConstraint:0x81b29b0 h=-&- v=-&- UIView:0x75f7500.height == UIViewControllerWrapperView:0x75f38e0.height>",
"<NSLayoutConstraint:0x7578850 V:[UILabel:0x75f7220]-(124)-|   (Names: '|':UIView:0x75f7500 )>",
"<NSLayoutConstraint:0x75fbfc0 UILabel:0x75f7220.baseline == UILabel:0x75f6ee0.baseline>",
"<NSLayoutConstraint:0x75fbcc0 V:[UIView:0x75f3ab0]-(11)-[UILabel:0x75f6ee0]>",
"<NSLayoutConstraint:0x75fbe40 V:|-(321)-[UIView:0x75f7160]   (Names: '|':UIView:0x75f7500 )>",
"<NSLayoutConstraint:0x75fbe80 UIView:0x75f7160.top == UIView:0x75f3ab0.top>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x75f5d10 V:[UILabel:0x75f6ee0(24)]>

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

我尝试删除所有约束,但我收到错误,说我需要约束。我是Objective-C的新手,所以我真的不知道怎么读这些。如果你能使你的答案变得非常简单,那将非常有用!

2 个答案:

答案 0 :(得分:5)

请记住,iOS 7仍然在NDA下。

此日志的含义是,您使用的是自动布局,并且您有两个相互矛盾的约束。

例如: 您的观点有限制:

  • 10px top to superview
  • 60px底部到superview
  • 498px身高

这适用于任何超级视图,即568pt高度。例如,在iPhone 5上的全屏应用程序上。一旦超视图的大小发生变化(例如,当您的设备大小不同时),您将收到错误。

尝试两件事:

  1. 永远不要将所有约束放在对象上。要么:

    • top&amp;底部间距(当尺寸改变时,这将改变高度)
    • 顶部间距&amp;高度(如果尺寸改变,这将改变底部的空间)
    • 底部间距&amp;高度(将改变顶部的空间)
    • 同样适用于左,右和宽
  2. 尝试在viewcontroller上设置use Fullscreen。由于NDA,我目前无法解释,iOS 7和iOS 6之间的区别是什么,但我认为它可能有所帮助。

答案 1 :(得分:-3)

您只需查看控制器的文件检查器,然后取消选择Use Auto-Layout

No Auto-Layout