在iAd中使用ios6约束
我想使用约束来布局我的视图。。。 应该是这样的: 在纵向模式下: 在横向模式下: 到目前为止,我的代码用于约束:在iAd中使用ios6约束,ios6,iad,autolayout,Ios6,Iad,Autolayout,我想使用约束来布局我的视图。。。 应该是这样的: 在纵向模式下: 在横向模式下: 到目前为止,我的代码用于约束: [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[profilHeader]|" options:0
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[profilHeader]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(profilHeader)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_ad]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_ad)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[profilHeader(100)][_ad(50)][_tableView]-0-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(profilHeader, _ad, _tableView)]];
如果我不把广告的(50)放在一边,桌面视图就会结束
当然,除了(50)个“广告”,当要横向移动时,它不会将tableView向上移动18px(因为广告将是480x32).当方向改变时,您需要设置“广告”的高度:
- (void)updateViewConstraints{
[super updateViewConstraints];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_profilHeader]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_profilHeader)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_ad]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_ad)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_profilHeader(100)][_ad][_tableView]-0-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_profilHeader, _ad, _tableView)]];
//remove the existing constraint
[self.view removeConstraint:self.heightConstraint];
//set the height according to orientation
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
self.heightConstraint=[NSLayoutConstraint constraintWithItem:_ad attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:0 multiplier:1.0 constant:50];
}
//landscape
else{
self.heightConstraint=[NSLayoutConstraint constraintWithItem:_ad attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:0 multiplier:1.0 constant:32];
}
[self.view addConstraint:self.heightConstraint];
}
当方向改变时,您需要设置“广告”的高度:
- (void)updateViewConstraints{
[super updateViewConstraints];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_profilHeader]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_profilHeader)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_ad]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_ad)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_profilHeader(100)][_ad][_tableView]-0-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_profilHeader, _ad, _tableView)]];
//remove the existing constraint
[self.view removeConstraint:self.heightConstraint];
//set the height according to orientation
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
self.heightConstraint=[NSLayoutConstraint constraintWithItem:_ad attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:0 multiplier:1.0 constant:50];
}
//landscape
else{
self.heightConstraint=[NSLayoutConstraint constraintWithItem:_ad attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:0 multiplier:1.0 constant:32];
}
[self.view addConstraint:self.heightConstraint];
}