2015-08-18 12 views
1

這裏是我的代碼。 我有編程加入自動佈局約束,但是項目的崩潰,由於約束沒有正確設定 plz幫助我解決這個錯誤我必須以自動佈局約束編程添加標籤和文本字段,但項目崩潰

-(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]; 
} 
+0

其中是您的ImageView或文本框的框架? –

+0

什麼是崩潰 –

+0

您正在爲rootview添加約束將這些約束添加到您的文本框,標籤和imageview –

回答

1

我已編輯的代碼中添加一行標籤和文本字段...嘗試這可能會幫助... 用這個替換您的代碼...

-(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]; 
[email protected]"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]; 
[email protected]"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]; 
} 
相關問題