Ios 我必须使用autolayout约束以编程方式在一行中添加标签和文本字段,但项目崩溃

Ios 我必须使用autolayout约束以编程方式在一行中添加标签和文本字段,但项目崩溃,ios,objective-c,xcode,ios-autolayout,Ios,Objective C,Xcode,Ios Autolayout,这是我的密码。 我必须通过添加自动布局约束以编程方式在一行中添加标签和文本字段,但由于约束设置不正确,项目崩溃 请帮助我解决这个错误 -(void)autoLayoutProgrametacally { UIImageView *imgView = [[UIImageView alloc] init]; imgView.contentMode = UIViewContentModeScaleAspectFit; imgView.translatesAutoresizingMaskIntoCon

这是我的密码。 我必须通过添加自动布局约束以编程方式在一行中添加标签和文本字段,但由于约束设置不正确,项目崩溃 请帮助我解决这个错误

-(void)autoLayoutProgrametacally
{

UIImageView *imgView = [[UIImageView alloc] init];
imgView.contentMode = UIViewContentModeScaleAspectFit;
imgView.translatesAutoresizingMaskIntoConstraints = NO;
UIImage *image =[UIImage imageNamed:@"background.jpg"];
[imgView setImage:image];
[self.view addSubview:imgView];

NSArray *imageViewHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[imgView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(imgView)];
NSArray *imageViewVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[imgView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(imgView)];

[self.view addConstraints:imageViewHorConst];
[self.view addConstraints:imageViewVerConst];


UILabel *FirstName = [[UILabel alloc] init];
[FirstName setTranslatesAutoresizingMaskIntoConstraints:NO];
[FirstName setNumberOfLines:1];
[FirstName setText:@"First Name:"];
[self.view addSubview:FirstName];
UILabel *LastName = [[UILabel alloc] init];
[LastName setTranslatesAutoresizingMaskIntoConstraints:NO];
[LastName setNumberOfLines:1];
[LastName setText:@"Last Name:"];
[self.view addSubview:LastName];
UITextField *txtFirstName=[[UITextField alloc]init];
[txtFirstName setTranslatesAutoresizingMaskIntoConstraints:NO];
UITextField *txtLastName=[[UITextField alloc]init];
[txtLastName setTranslatesAutoresizingMaskIntoConstraints:NO];




NSArray *FirstNameVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(10)-[FirstName]" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(FirstName)];
NSArray *FirstNameHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(10)-[FirstName(txtFirstName)]-(10)-[txtFirstName]" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:@{@"FirstName":FirstName, @"txtFirstName":txtFirstName}];
NSArray *LastNameVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[LastName]" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(LastName)];
NSArray *LastNameHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[LastName(txtLastName)]-(10)-[txtLastName]" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:@{@"LastName":LastName, @"txtLastName":txtLastName}];


[self.view addConstraints:FirstNameVerConst];
[self.view addConstraints:FirstNameHorConst];
[self.view addConstraints:LastNameVerConst];
[self.view addConstraints:LastNameHorConst];
}

我已经编辑了代码…试试这个也许会有帮助。。。 用这个替换你的代码

-(void)autoLayoutProgrametacally
{

UIImageView *imgView = [[UIImageView alloc] init];
imgView.contentMode = UIViewContentModeScaleAspectFit;
imgView.translatesAutoresizingMaskIntoConstraints = NO;
UIImage *image =[UIImage imageNamed:@"background.jpg"];
[imgView setImage:image];
[self.view addSubview:imgView];

NSArray *imageViewHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[imgView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(imgView)];
NSArray *imageViewVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[imgView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(imgView)];

[self.view addConstraints:imageViewHorConst];
[self.view addConstraints:imageViewVerConst];


UILabel *FirstName = [[UILabel alloc] init];
[FirstName setTranslatesAutoresizingMaskIntoConstraints:NO];
[FirstName setNumberOfLines:1];
[FirstName setText:@"First Name:"];
FirstName.textColor=[UIColor whiteColor];
[self.view addSubview:FirstName];

UITextField *txtFirstName=[[UITextField alloc]init];
txtFirstName.placeholder=@"FirstName";
txtFirstName.contentMode = UIViewContentModeScaleAspectFit;
txtFirstName.translatesAutoresizingMaskIntoConstraints = NO;
txtFirstName.backgroundColor = [UIColor whiteColor];
txtFirstName.font = [UIFont systemFontOfSize:10.0];
txtFirstName.leftViewMode = UITextFieldViewModeAlways;
[self.view addSubview:txtFirstName];

UILabel *LastName = [[UILabel alloc] init];
[LastName setTranslatesAutoresizingMaskIntoConstraints:NO];
[LastName setNumberOfLines:1];
[LastName setText:@"Last Name:"];
LastName.textColor=[UIColor whiteColor];
[self.view addSubview:LastName];

UITextField *txtLastName=[[UITextField alloc]init];
txtLastName.placeholder=@"LastName";
txtLastName.contentMode = UIViewContentModeScaleAspectFit;
txtLastName.translatesAutoresizingMaskIntoConstraints = NO;
txtLastName.backgroundColor = [UIColor whiteColor];
txtLastName.font = [UIFont systemFontOfSize:10.0];
txtLastName.leftViewMode = UITextFieldViewModeAlways;
[self.view addSubview:txtLastName];




NSDictionary *metrics = @{@"height":@30.0};

NSArray *FirstNameVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(30)-[FirstName(25)]" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(FirstName)];
NSArray *FirstNameHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[FirstName(txtFirstName)]-10-[txtFirstName(250)]-10-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:NSDictionaryOfVariableBindings(FirstName,txtFirstName)];



NSArray *LastNameVerConst = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[FirstName(LastName)]-[LastName(25)]" options:0 metrics:nil views:@{@"FirstName":FirstName , @"LastName":LastName }];


NSArray *LastNameHorConst = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[LastName(txtLastName)]-10-[txtLastName(250)]-10-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:NSDictionaryOfVariableBindings(LastName,txtLastName)];

[self.view addConstraints:FirstNameVerConst];
[self.view addConstraints:FirstNameHorConst];
[self.view addConstraints:LastNameVerConst];
[self.view addConstraints:LastNameHorConst];
}

Imageview或textfield的框架在哪里?您正在向rootview添加约束将这些约束添加到您的textfield、label和Imageview获得的错误报告是什么?我在尝试运行“[UIView\U layoutEngine\U didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:]”时收到此错误,