0

我得到了无法同时满足约束错误。

当 viewcontroller 使用 viewDidLoad 建立自己时,我没有收到错误消息,但在使用 loadView 时确实收到了错误消息……为什么会这样?

我认为 loadView 和 viewDidLoad 之间的唯一区别是 viewDidLoad 发生在 loadView 之后。至少,这似乎是正在进行的解释......

4

1 回答 1

0

我不知道我的回答是否会完全解决您的问题,但它可以作为解决您问题的起点。

在使用loadView之前,有很多点(您可能知道)需要注意:

  1. loadView是视图加载时调用的方法,viewDidLoad是视图加载后执行的方法。

  2. 当您愿意以编程方式创建视图而不是在 xib 文件中设置时,建议使用 loadView,否则使用或调用 loadView 没有意义但这完全取决于您的应用程序要求)。

  3. 如果您从故事板或 xib 文件初始化视图,请不要调用 super loadView 。

  4. 如果你从故事板初始化你的视图,不要调用 [super loadView],你必须将你的 rootView 分配给 self.view 属性,如果你[super loadView]在方法内部调用,你最好不要覆盖这个方法并将你的代码放在 viewDidLoad 方法中。

  5. 如果您使用 xib 文件来设置视图,请修改viewDidLoad中设置的对象并且不要调用loadView,如果您以编程方式创建视图,请在loadView中初始化视图并在viewDidLoad中进行附加设置.

The constraint error generally pops up in story board or xib file,when "Use AutoLayout" is selected,if you unselect it,the error disappears,since you are creating the view programatically in loadView,it is your responsibility to see to it that the自动布局选项被禁用,即您需要setTranslatesAutoresizingMaskIntoConstraints通过将其设置为“否”来使用属性。

您还可以在这里那里参考一些相关问题,这很可能会让您摆脱这个问题。

谢谢和愉快的编码:)

于 2013-08-20T10:44:42.387 回答