我有一个UINavigationBar的子类,我在其中添加了一些UIView。
我的UIView根据我在
在iOS8及以上版本上,这个问题没有出现。但是在iOS7上,我遇到了以下错误:
'Auto Layout still required after executing -layoutSubviews. MyUINavigationBarSubclass's implementation of -layoutSubviews needs to call super.'
怎么回事?我没有在任何地方重写layoutSubviews?
PS:我尝试在添加约束之前调用[self layoutIfNeeded](正如其他问题中有人建议的那样),但似乎并不起作用。
我的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?
PS:我尝试在添加约束之前调用[self layoutIfNeeded](正如其他问题中有人建议的那样),但似乎并不起作用。