Я следил за несколькими учебниками, но я не могу заставить мое приложение принять правила, которые я установил для NSAutoLayoutConstraints.NSAutoLayoutConstraints crashing app
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse constraint format:
Unable to interpret '|' character, because the related view doesn't have a superview
V:|-[signupBtn][signupWithFacebookBtn]-|
В моем методе viewLoad:
-(void)loadView
{
[super loadView];
//Create the background view
[self.view setBackgroundColor:[UIColor whiteColor]];
//Set up the buttons, labels, and textfields
signupBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[signupBtn setTitle:@"Sign Up!" forState:UIControlStateNormal];
[signupBtn setTranslatesAutoresizingMaskIntoConstraints:NO];
[signupBtn setFrame:CGRectMake(50, 350, 220, 40)];
signupWithFacebookBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[signupWithFacebookBtn setTitle:@"Sign Up with Facebook" forState:UIControlStateNormal];
[signupWithFacebookBtn setTranslatesAutoresizingMaskIntoConstraints:NO];
[signupWithFacebookBtn setFrame:CGRectMake(50, 400, 320, 40)];
//A dictionary of all subviews
NSDictionary* m_viewsDictionary = NSDictionaryOfVariableBindings(signupBtn, signupWithFacebookBtn);
//Constraints
NSArray* verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[signupBtn][signupWithFacebookBtn]-|" options:0 metrics:nil views:m_viewsDictionary];
NSArray* horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[signupBtn][signupWithFacebookBtn]-|" options:0 metrics:nil views:m_viewsDictionary];
//Add the buttons, labels and textfields
[self.view addSubview:signupBtn];
[self.view addSubview:signupWithFacebookBtn];
//Add constraints
[self.view addConstraints:verticalConstraints];
[self.view addConstraints:horizontalConstraints];
NSLog(@"Hello world");
}
Я не знаю, почему это происходит сбой. Подразделы существуют и добавляются до добавления ограничений. Кроме того, обе кнопки имеют setTranslatesAutoresizeMaskIntoConstraints
, установленный в НЕТ. Что мне не хватает?
Ах! Понимаю. Я неправильно понял, и подумал, что ограничения должны были быть добавлены после добавления подпунктов, но не определены. Спасибо! –
Пожалуйста, добавьте отредактированный код – Abhishek