|-(20) -[UIInputSetContainerView约束在状态栏中的调用可见时中断[duplicate]

这个问题在这里已经有答案了
在调用状态栏中(无法满足约束)

(4个答案)

五年前关闭的

当我通过在模拟器中按Command+Y来显示“呼叫”状态栏时,我的应用程序打破了限制。它只在第一次在酒吧中出现呼叫时发生。所有内容看起来都与预期的一样,但日志打印出以下内容:

无法同时满足约束。
可能下面列表中至少有一个约束是您不想要的。
试试这个:
(1) 看看每一个约束,试着找出你不期望的;
(2) 找到添加了不需要的约束的代码,然后修复它。
(
“<NSLayoutConstraint:0x7fb4cb9b2b60 V:|-(20)-[UIInputSetContainerView:0x7fb4cb9b1190](名称:“|”):UITextEffectsWindow:0x7fb4cba003f0)>”,
“<NSLayoutConstraint:0x7fb4cb942100'UIInputWindowController top'V:|-(0)-[UIInputSetContainerView:0x7fb4cb9b1190](名称:'|':UITextEffectsSwindow:0x7fb4cba003f0)>”
)
将尝试通过打破约束进行恢复
<NSLayoutConstraint:0x7fb4cb9b2b60 V:|-(20)-[UIInputSetContainerView:0x7fb4cb9b1190](名称:“|”):UITextEffectsSwindow:0x7fb4cba003f0)>
在UIViewAlertForUnsatifiableConstraints处创建一个符号断点,以便在调试器中捕获该断点。
<中列出的UIView上UIConstraintBasedLayoutDebugging类别中的方法;UIKit/UIView.h>也可能有帮助。

这是为UIViewAlertForUnsatifiableConstraints而中断的调用堆栈:

*thread#1:tid=0x17582f,0x0000000109bbb4c6 UIKit`UIViewAlertforUnsatifiableConstraints,queue='com.apple.main thread',停止原因=断点3.1
框架#0:0x0000000109bbb4c6 UIKit`UIViewAlertforUnsatifiableConstraints
框架#1:0x0000000109bbb8b2 UIKit`-[UIView(UIConstraintBasedLayout_EngineedLegate)引擎:willBreakConstraint:dueToMutuallyExclusiveConstraints:+113
框架#2:0x0000000107ea672b基础`-[n发动机手柄不可分离带头部:主体:使用不可操作行为:相互排斥约束:+489
框架#3:0x0000000107d07801基础`-[nsesengine fixupvalue restriction违犯了不可行的处理行为:+613
框架#4:0x0000000107d07537基础`-[NSISEngine optimize]+134
框架#5:0x0000000107d07da4基础`-[n包含行为的引擎:性能修改:]+245
框架#6:0x0000000109bb5a4b UIKit`-[UIView(附加布局支持)\u带自动工程优化功能禁用的DIFENGINE EXISTS:+58
帧#7:0x0000000109bb658e UIKit`-[UIView(AdditionalLayoutSupport)updateConstraintsIfNeeded]+254
帧#8:0x0000000109ba6c46 UIKit`-[UIWindow(UIConstraintBasedLayout)updateConstraintsIfNeeded]+108
帧#9:0x0000000109bb72a3 UIKit`-[UIView(附加布局支持)\u updateConstraintsTengineLevel需要]+272
帧#10:0x00000001093979b3 UIKit`-[UIView(层次结构)布局需要下方]+845
框架#11:0x000000010936eb8b UIKit`-[UIWindow扶手状态栏从高度:更改为高度:][1284
框架#12:0x0000000109703b5b UIKit`-[UITExtEffectswindowHandleStatusBar从高度:更改为高度:][100
*帧#13:0x00000001093726a7 UIKit`+[UIWindow\u注释状态栏高度已更改:旧高度:仅适用于自动布局或OOTVIEWS:+364
帧#14:0x0000000109303a52 UIKit`-[UIApplication statusBar:willAnimateFromHeight:toHeight:duration:animation:+265
帧#15:0x00000001099115bb UIKit`-[UIStatusBar _requestStyleAttributes:animationParameters:forced:+885
帧#16:0x0000000109910fbf UIKit`-[UIStatusBar requestStyle:animationParameters:forced:+437
帧#17:0x0000000109910d0d UIKit`-[UIStatusBar请求样式:动画:强制:+90
框架#18:0x00000001099160a6 UIKit`-[UIStatusBar statusBarServer:didReceiveStyleOverrides:+56
帧19:0x0000000109904b05 UIKit`\u UIStatusBarReceivedStyleOverrides+45
帧#20:0x0000000109909058 UIKit`XReceivedStyleOverrides+33
第21帧:0x0000000110d67fa8应用程序支持`migHelperRecievePortCallout+208
帧#22:0x000000010896c289 CoreFoundation`\uuu CFRUNLOOP\u正在调用\u OUT\u以执行\u SOURCE1\u函数\uu+41
帧#23:0x000000010896c1f9 CoreFoundation`\uu CFRunLoopDoSource1+473
帧#24:0x0000000108961970 CoreFoundation`u CFRunLoopRun+2272
帧#25:0x0000000108960e08 CoreFoundation`CFRunLoopRunSpecific+488
帧#26:0x000000010e360ad2 GraphicsServices`GSEventRunModal+161
帧#27:0x00000001092f330d UIKit`UIApplicationMain+171
帧#28:0x00000001074e252f AppName`main(argc=1,argv=0x00007fff5872e688)+111位于main处。m:16
帧29:0x000000010aa6b92d libdyld.dylib`start+1
帧#30:0x000000010aa6b92d libdyld.dylib`start+1

你知道为什么约束会中断吗?我没有向UIInputSetContainerViewUITextEffectsSwindowUIInputWindowController添加任何约束

编辑:我的问题已标记为可能重复,但我不建议或同意其他问题中提供的答案。仅仅为了摆脱这一警告,取消苹果自身的限制是非常危险的。我不建议这样做。这就是为什么我还发现复制标志错误的原因(这个问题以前被问过,并且已经有了答案。),因为答案不是我要找的答案

看起来像是苹果虫。您可以验证它是否发生在完全空的模板项目上:

  • 创建新的单视图项目
  • 在iPhone模拟器上运行
  • 按Cmd-Y切换状态栏

您将看到约束中断

我会说,雷达是前进的方向

发表评论