我正在观看有关 AutoLayout 的 WWDC 演讲,并且了解到在视图上设置 StoryboardID 可以使约束冲突的控制台输出更易于阅读(即,您得到一个名称而不仅仅是一个地址)。他们向您展示了在 Interface Builder 中设置 StoryboardID(以前只是“标识符”)的位置,但是有没有办法在代码中做到这一点?我正在尝试在一个 100% 编程的应用程序中调试一组大而复杂的视图,这些视图不是我自己编写的,它有许多不可满足的约束,并且(不知何故)在 iOS 7 中工作,但开始在 iOS 中崩溃8. 我很想清楚地了解其中的情况<UIView:0x8675309>
实际上是造成问题的原因。
我查看了 UIView 类参考,没有找到“Identifier”或“StoryboardID”。
如果答案是“不”,也不会太惊讶。毕竟它被称为 Storyboard ID 是有原因的。但如果可能的话,我希望得到确认以及使 AutoLayout 控制台转储更具可读性的解决方法。
我参加聚会有点晚了,但我希望这会有所帮助。 UIView 上确实有一个非常简单的属性,通过它符合UI辅助功能识别 https://developer.apple.com/reference/uikit/uiaccessibilityidentification:
centerView.accessibilityIdentifier = "Center Foobar View"
containerView.accessibilityIdentifier = "Container BingBat View"
这会产生您期望的调试器输出:
"<NSLayoutConstraint:0x7fe3fa3ade50 Center Foobar View.centerX == Container BingBat View.centerX (Names: Center Foobar View:0x7fe3fa3a1700, Container BingBat View:0x7fe3fa3856c0 )>"
,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)