获得约束以适应大小类

 鎏源大哥 发布于 2023-01-07 10:00

所以,我正在玩Xcode 6 beta中的大小类.我在图像上设置了一些约束,使其根据与iPhone纵向和横向对应的尺寸类别处于不同的位置.

约束在下面的图像中可见.正如您所看到的,当我处于Compact/Compact时,某些约束被"安装"而其他约束则没有,并且在Compact/Regular中,安装了其他约束.

小型/紧凑型 紧凑型/定期

但是,我得到一个错误(在两个屏幕截图中略微可见)基本上声称我的卸载约束干扰了我安装的约束(如果它们同时运行,则为真)但不应该为每个大小的卸载约束班甚至没有跑?安装的约束都不会导致彼此之间的问题.

显示的错误是:

2014-06-30 21:14:26.215 TV Tracker[26417:1434692] SetAppThreadPriority: setpriority failed with error 45
2014-06-30 21:14:26.372 TV Tracker[26417:1434692] 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) 
(
"",
"=18)-[UILabel:0x10bb4db70'TV Tracker uses your Trak...']>",
"",
""
)

Will attempt to recover by breaking constraint 
=18)-[UILabel:0x10bb4db70'TV Tracker uses your Trak...']>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in  may also be helpful.
2014-06-30 21:14:26.373 TV Tracker[26417:1434692] 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) 
(
"",
"",
""
)

Will attempt to recover by breaking constraint 


Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in  may also be helpful.
2014-06-30 21:14:26.388 TV Tracker[26417:1434692] 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) 
(
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
)

Will attempt to recover by breaking constraint 


Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in  may also be helpful.
2014-06-30 21:14:26.389 TV Tracker[26417:1434692] 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:0x10bd1c8a0 V:[_UILayoutGuide:0x10bb4acb0(64)]>",
"<_UILayoutSupportConstraint:0x10bd1fbf0 V:|-(0)-[_UILayoutGuide:0x10bb4acb0]   (Names: '|':UIControl:0x10bb2db60 )>",
"",
"",
"",
"",
"",
"",
"",
"",
""
)

Will attempt to recover by breaking constraint 


Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in  may also be helpful.
2014-06-30 21:14:26.396 TV Tracker[26417:1434692] 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:0x10bd13470 V:[_UILayoutGuide:0x10bb4c690(0)]>",
"<_UILayoutSupportConstraint:0x10bd13410 _UILayoutGuide:0x10bb4c690.bottom == UIControl:0x10bb2db60.bottom>",
"",
"",
"",
"",
"",
"",
"",
"",
""
)

Will attempt to recover by breaking constraint 

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in  may also be helpful.

Compact/Compact约束的侧边栏看起来像 C/C侧栏

Compact/Regular约束的侧边栏看起来像 C/R侧栏

我的登录控制器的视图层次结构: 查看层次结构

1 个回答
  • 我第一次尝试这个功能时遇到了同样的问题,直到我意识到"+"按钮告诉我的是什么.起初,我更改了大小类并删除了视图并添加了视图,或删除了约束并添加了约束.那是错的!您不能在每个大小的类基础上删除或添加视图或约束; 它们必须全部存在于每个大小类中 - 其中只有一些被标记为"已安装",而其他大小类则没有.

    这是一些进一步的建议.

    查看屏幕截图的顶部.您正在从Interface Builder获得警告 - 并忽略它们.不要忽视它们!这些警告告诉你,你的约束并没有按你认为的那样做.

    显示画布左侧的视图层次结构列表(它隐藏在屏幕截图中)并继续查看并处理每个大小类组合,直到没有更多警告.它还会告诉您在大量情况下以及您正在查看的特定大小类情况中存在哪些约束和视图(请参见下面的屏幕截图).

    使用右侧属性检查器中的"+"按钮确保您具有每个相关大小类案例的值.您不添加或删除约束或类:添加"已安装"按钮并标记其大小类并选中或取消选中它们(再次参见屏幕截图).

    在此输入图像描述

    最后,使用"预览助手"确保视图看起来与您期望的一样.看下面的可爱动画.

    在此输入图像描述

    2023-01-07 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有