UIStackView quot;Unable to simultaneously satisfy constraintsquot; on quot;squishedquot; hidden views(UIStackView“无法同时满足约束在“压扁上隐藏视图)
问题描述
当我的 UIStackView 行"被压扁时,它们会抛出 AutoLayout 警告.但是,它们显示正常,除了这些日志记录之外没有其他问题:
When my UIStackView "rows" are squished, they throw AutoLayout warnings. However, they display fine and nothing else is wrong besides these sorts of loggings:
无法同时满足约束.以下列表中的至少一个约束可能是您不想要的.试试这个:(1)查看每个约束并尝试找出您不期望的;(2) 找到添加了一个或多个不需要的约束的代码并修复它.(注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档)(
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
NSAutoresizingMaskLayoutConstraintsthat you don't understand, refer to the documentation for theUIViewpropertytranslatesAutoresizingMaskIntoConstraints) (
所以,我还不确定如何解决这个问题,但除了烦人之外,它似乎并没有破坏任何东西.
So, I'm not sure how to fix this yet, but it doesn't seem to break anything besides just being annoying.
有人知道怎么解决吗?有趣的是,布局约束经常被标记为 'UISV-hiding',这表明它可能应该忽略子视图的最小高度或在这种情况下?
Does anyone know how to solve it? Interestingly, the layout constraints are tagged quite often with 'UISV-hiding', indicating that perhaps it should ignore the height minimums for subviews or something in this instance?
推荐答案
你遇到这个问题是因为当从 UIStackView 中设置子视图为隐藏时,它会首先将其高度限制为零,以便动画出来.
You get this issue because when setting a subview from within UIStackView to hidden, it will first constrain its height to zero in order to animate it out.
我收到以下错误:
2015-10-01 11:45:13.732 <redacted>[64455:6368084] 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:0x7f7f5be18c80 V:[UISegmentedControl:0x7f7f5bec4180]-(8)-| (Names: '|':UIView:0x7f7f5be69d30 )>",
"<NSLayoutConstraint:0x7f7f5be508d0 V:|-(8)-[UISegmentedControl:0x7f7f5bec4180] (Names: '|':UIView:0x7f7f5be69d30 )>",
"<NSLayoutConstraint:0x7f7f5bdfbda0 'UISV-hiding' V:[UIView:0x7f7f5be69d30(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f7f5be18c80 V:[UISegmentedControl:0x7f7f5bec4180]-(8)-| (Names: '|':UIView:0x7f7f5be69d30 )>
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.
我试图做的是在我的 UIStackView 中放置一个 UIView,其中包含一个 UISegmentedControl 在每个边缘上插入 8 个点.
What I was trying to do, was to place a UIView within my UIStackView that contained a UISegmentedControl inset by 8pts on each edge.
当我将它设置为隐藏时,它会尝试将容器视图约束为零高度,但因为我有一组从上到下的约束,所以发生了冲突.
When I set it to hidden, it would try to constrain the container view to a zero height but because i have a set of constraints from top to bottom, there was a conflict.
为了解决这个问题,我将我的 8pt 上下约束优先级从 1000 更改为 999,以便 UISV-hiding 约束可以在需要时获得优先级.
To resolve the issue, I changed my 8pt top an bottom constraints priority from 1000 to 999 so the UISV-hiding constraint can then take priority if needed.
这篇关于UIStackView“无法同时满足约束"在“压扁"上隐藏视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:UIStackView“无法同时满足约束"在“压扁"上隐藏视图
基础教程推荐
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
