【问题标题】:iOS autolayout exception "Unable to simultaneously satisfy constraints"iOS 自动布局异常“无法同时满足约束”
【发布时间】:2013-12-19 19:39:06
【问题描述】:

我有一个视图控制器,其中我有一个 tableview 和 UISearchDisplayController。 我在情节提要中为子视图添加了约束。

我正在向 UISearchResultTableView 添加约束,使其高度从底部开始为 -50

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {

问题是当我在 UISearchBar 中搜索某些内容时。它抛出异常“无法同时满足约束”

我尝试添加 [tableView setTranslatesAutoresizingMaskIntoConstraints:NO];在添加约束之前但表格不会滚动

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {

[tableView setTranslatesAutoresizingMaskIntoConstraints:NO];

    NSLayoutConstraint *ccc = [NSLayoutConstraint constraintWithItem:tableView
                                                          attribute:NSLayoutAttributeBottom
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeBottom
                                                         multiplier:1
                                        constant:-50];
    [constraintsArray addObject:ccc];


   [self.view addConstraints:constraintsArray];

}

谁能帮我解决这个问题? 谢谢

【问题讨论】:

    标签: ios7 uisearchbar autolayout uisearchdisplaycontroller


    【解决方案1】:

    正如您所说,您收到一条异常消息“无法同时满足约束”。这意味着您的约束在某处发生冲突。我认为您已经在情节提要中设置了 tableview 的约束,但是您在代码中添加了另一个约束。所以它不能确定满足哪个约束来重置 tableview 的框架。修好就好了。

    【讨论】:

    • 约束被添加到情节提要中的 UISearchDisplayController 而不是它的 tableView。我的问题是 [tableView setTranslatesAutoresizingMaskIntoConstraints:NO]; 之后要添加什么约束
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多