应用程序因以下日志(P.F.A)而崩溃,并且仅在iOS 11中崩溃。
致命异常:NSInternalInconsistencyException,无法设置 视图层次结构的布局没有为约束做好准备。
__ 120- [UIView(UIConstraintBasedLayout)_layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutualExclusiveConstraints:] _ block_invoke_2
更新: -
场景: - 我在键盘上有一个UIToolbar,用于添加
的代码视图层次结构没有为约束准备:NSLayoutConstraint:0x1c0295540 V:[UIToolbar:0x10219f550] - (0) - [_ UIRemoteKeyboardPlaceholderView:0x10219fab0](无效)
#pragma mark KeyBoard Related Function
-(void)createInputAccessoryView:(NSInteger )tagNumber
{
inputAccessoryView = [[UIToolbar alloc]init];
[inputAccessoryView setBackgroundColor:kKYBOARDCOLOR];
[inputAccessoryView sizeToFit];
[inputAccessoryView setHidden:NO];
//Use this to put space in between your toolbox buttons
UIBarButtonItem *barSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
UIBarButtonItem *barBtnDone = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self action:@selector(actnResignKeyboard)];
NSArray *barItems;
barItems = [NSArray arrayWithObjects:barSpace,barBtnDone, nil];
[inputAccessoryView setItems:barItems animated:YES];
}
出现和消失的键盘会导致崩溃,但是当我删除UIToolbar时,每件事都运行正常。
注意: - 此代码在iOS 11之前正常工作。
答案 0 :(得分:0)
您是否尝试打印堆栈跟踪以了解哪个布局或视图层次结构导致此问题?另外,首先尝试将视图添加到superview,然后应用约束