1

编辑:

所有子视图都放在控制器的 xib 中。一切正常,直到应用程序在 iPad 模拟器中以纵向模式运行,只要模拟器旋转它就会打印一些警告:

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:0x855f4c0 V:[MKNumberBadgeView:0x853fb70]-(743)-|   (Names: '|':UIView:0x855b3b0 )>",
"<NSLayoutConstraint:0x855f480 V:|-(5)-[MKNumberBadgeView:0x853fb70]   (Names: '|':UIView:0x855b3b0 )>",
"<NSAutoresizingMaskLayoutConstraint:0x76b48e0 h=-&- v=-&- UILayoutContainerView:0x8334f10.width == UIWindow:0x8334010.width>",
"<NSAutoresizingMaskLayoutConstraint:0x76b2ed0 h=-&- v=-&- UITransitionView:0x8336250.height == UILayoutContainerView:0x8334f10.height - 49>",
"<NSAutoresizingMaskLayoutConstraint:0x767e1d0 h=--- v=--- H:[UIWindow:0x8334010(768)]>",
"<NSAutoresizingMaskLayoutConstraint:0x7678c40 h=-&- v=-&- UIViewControllerWrapperView:0x76565f0.height == UITransitionView:0x8336250.height>",
"<NSAutoresizingMaskLayoutConstraint:0x7677290 h=-&- v=-&- UILayoutContainerView:0x83371a0.height == UIViewControllerWrapperView:0x76565f0.height>",
"<NSAutoresizingMaskLayoutConstraint:0x7675b60 h=-&- v=-&- UINavigationTransitionView:0x83398e0.height == UILayoutContainerView:0x83371a0.height>",
"<NSAutoresizingMaskLayoutConstraint:0x7674320 h=-&- v=-&- UIViewControllerWrapperView:0xf529bf0.height == UINavigationTransitionView:0x83398e0.height - 20>",
"<NSAutoresizingMaskLayoutConstraint:0x76729e0 h=-&- v=-&- UIView:0x855b3b0.height == UIViewControllerWrapperView:0xf529bf0.height>"
)
Will attempt to recover by breaking constraint <NSLayoutConstraint:0x855f4c0 V:[MKNumberBadgeView:0x853fb70]-(743)-|   (Names: '|':UIView:0x855b3b0    )>

我用谷歌搜索了这个解决方案并发现setTranslatesAutoresizingMaskIntoConstraints但不幸的是这些警告仍然存在。有什么建议/帮助吗?

4

1 回答 1

0

这两个约束:

V:|-(5)-[MKNumberBadgeView:0x853fb70]

V:[MKNumberBadgeView:0x853fb70]-(743)-|

告诉布局管理器您希望MKNumberBadgeView从其超级视图顶部固定 5 个点,从底部固定 743 个点。iPad 的屏幕宽 768 点(或高,横向),将状态栏的屏幕减去 20 点,只剩下 748 点。布局中没有空间来满足这些约束,除非您的 MKNumberBadgeView 的高度为零。

您需要在 xib 中找到约束并更正它们。您实际上似乎不太可能需要将徽章视图的底部固定到其超级视图的底部,单独固定顶部并具有固有高度应该没问题。

于 2013-08-05T14:25:58.807 回答