【问题标题】:NSInvalidArgumentException', reason: 'Unable to parse constraint format:NSInvalidArgumentException',原因:'无法解析约束格式:
【发布时间】:2015-10-14 20:31:25
【问题描述】:

NSInvalidArgumentException',原因:'无法解析约束格式:我计划对问答进行动态自动布局,但在执行 nslayout 约束后出现此错误。

    UIScrollView *view = self.view;
        NSDictionary *viewDictionary = @{@"view":view,
                                         @"control":control  
        };
        NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:-0-[view]-0-“  options:0  metrics:nil
        views:viewDictionary];

        NSArray *verticalContraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:-[control]-[view]-"  options:0 metrics:nil
        views:viewDictionary];

        [self.view.superview addConstraints: verticalContraints];
        [self.view addSubview:control];
        [self.view.superview addConstraints:horizontalConstraints];

错误是:

error *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析约束格式: 期待一个视图 H:-0-[查看]-0-

【问题讨论】:

  • 发布您创建约束的代码以及您收到的整个错误消息。
  • 对我来说,您的约束似乎都是错误的。我的意思是你想在这里完成什么?您的垂直约束看起来像是试图将控件放在滚动视图的顶部,而您的水平约束是说将它们并排放置。我认为这会导致冲突。

标签: ios


【解决方案1】:

在添加约束之前将控制子视图添加到父视图。这样,自动布局可以理解添加的约束。

视觉格式语言需要一个“|”用于分隔超级视图边缘的字符。试试这个水平

|-[view]-|

这个是垂直的

V:|-[control]-[view]-|

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多