在控制台中,我的AutoLayout设置出现了一些冲突错误。
我知道他们的意思。
我如何才能找到错误所指的视图?
我知道我看过一个WWDC视频,他在视图上设置了一些标识符,以便AutoLayout错误更具可读性。
目前我有..。
(
"<NSAutoresizingMaskLayoutConstraint:0x20964090 h=--& v=--& H:[UIView:0x1fdddbf0(480)]>",
"<NSLayoutConstraint:0x1fde8000 H:[UIView:0x1fdb35a0(320)]>",
"<NSLayoutConstraint:0x1fdb3dc0 H:|-(0)-[UIView:0x1fdb35a0] (Names: '|':UIView:0x1fdb7040 )>",
"<NSLayoutConstraint:0x1fdb3d80 UIView:0x1fdb35a0.trailing == UIView:0x1fdb7040.trailing>",
"<NSAutoresizingMaskLayoutConstraint:0x1fd66e30 h=-&& v=-&& UIView:0x1fdb7040.width == UIView:0x1fdddbf0.width>"
) 我知道可能是AutoresizingMask导致了错误,但我不确定是哪个AutoresizingMask。
发布于 2013-06-12 03:23:33
通常,当我在代码中添加约束并为它们指定名称时,我才会让它显示标签。如果你通过故事板添加它们,你可以尝试向你的视图添加XCode标识符,但是当我遇到这个问题时,我通常会添加一些NSLog语句来打印出我感兴趣的视图,例如
NSLog(@"My View: %@", self.myView);这将向我显示视图的id,希望是这样的
My View: UIView:0x1fdddbf0在你的情况下。
也就是说,我不确定即使知道视图对您有多大帮助。标准建议是关闭使用自动布局的视图的自动调整蒙版大小。我没有太多的经验来协调这些问题,但看起来问题是一个视图被设置为320pt宽,并且自动调整蒙版添加了将其设置为480pt宽的约束。
发布于 2014-11-17 01:14:41
我知道这很老,但对于其他找到这个的人来说:你可以在界面生成器中使用this post中的指令来做这件事。基本上,您可以使用以下代码覆盖生成这些“UIView:0xany”子字符串的内部方法:
@implementation UIView (AutoLayoutDebugging)
- (void)setLayoutDebuggingIdentifier:(NSString *)readableName {
#ifdef DEBUG
objc_setAssociatedObject(self, @"layoutDebuggingIdentifier",
readableName, OBJC_ASSOCIATION_COPY_NONATOMIC);
#endif
}
#ifdef DEBUG
- (NSString *)_layoutDebuggingIdentifier {
return objc_getAssociatedObject(self, @"layoutDebuggingIdentifier");
}
#endif
@end然后,您可以选择IB中的任何视图,并将用户定义的运行时属性"layoutDebuggingIdentifier“设置为您希望在AutoLayout错误中看到的任何字符串。
https://stackoverflow.com/questions/17047230
复制相似问题