ios - UINavigationBar 子类上的 “Auto Layout still required after executing -layoutSubviews"

标签 ios autolayout

我有一个 UINavigationBar 子类,我要向其添加一些 UIView。

我的 UIView 是根据我在 -[UIView updateViewConstraints:] 中定义的约束进行布局的

NSDictionary *views, *metrics;

// search container constraints
[self addSubview:self.searchContainer];
self.searchContainer.translatesAutoresizingMaskIntoConstraints = NO;

views = NSDictionaryOfVariableBindings(_searchContainer);
metrics = @{@"h": @(SearchContainerExpandedHeight) };
self.searchContainerLeftSpacingConstraint = [NSLayoutConstraint constraintWithItem:self.searchContainer attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:xMargin];
[self addConstraint:self.searchContainerLeftSpacingConstraint];
self.searchContainerRightSpacingConstraint = [NSLayoutConstraint constraintWithItem:self.searchContainer attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant: 0 - xMargin];
[self addConstraint:self.searchContainerRightSpacingConstraint];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-24-[_searchContainer(h)]" options:0 metrics:metrics views:views]];
//etc

在 iOS8 及更高版本上,这工作正常。在 iOS7 上,我收到以下错误:

'Auto Layout still required after executing -layoutSubviews. MyUINavigationBarSubclass's implementation of -layoutSubviews needs to call super.'

什么给了?我没有在任何地方覆盖 layoutSubviews 吗?

附言。我试过在添加约束之前调用 [self layoutIfNeeded](正如一些人在其他问题中所建议的那样),但它似乎不起作用。

最佳答案

确保您设置:

[containerView setTranslatesAutoresizingMaskIntoConstraints:NO]; 

用于您的容器和 subview 。

关于ios - UINavigationBar 子类上的 “Auto Layout still required after executing -layoutSubviews",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956612/

相关文章:

ios - 约束含糊地建议 tableview 单元格的内容 View 高度为零

ios - UILabel sizeToFit 仅适用于关闭自动布局的情况

ios - 如何管理自动布局中两个 View 之间的间隙

ios - 带有自定义单元格的 UITableView 在滚动时滞后

ios - UIStepper 的值(value)

ios - ReactiveCocoa 将值从 Model 发送到 ViewController

javascript - 滚动事件监听器在 iFrame 中的 iOS 上不起作用

ios - 使用自动布局时设置 UICollectionViewFlowLayout 的属性不起作用

ios - 是否可以通过编程将音频输出重定向到 iOS 中的电话扬声器或耳机

ios - Core Graphics/iPhone如何绘制渐变弧线?