2013-02-22 2 views
1

와 iOS6의 제약 조건을 사용하여그것은 다음과 같아야합니다 내가 ... 내보기 레이아웃 제약 조건을 사용하는 싶습니다 말게

[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)]]; 
:

내 코드는 지금까지 제약 조건입니다 10 _ad의 옆에 (50)을 두지 않으면 _tableView가 위에있게됩니다. 제 (50)와

물론

옆으로 가로로, 그것은있는 tableView 18px를 이동하지 않습니다 _ad의 이상 ... (광고는 다음의 480x32 될 것입니다 때문에)

답변

1

당신이 필요 방향이 바뀌면 "광고"의 높이를 설정하십시오.

- (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]; 
} 
관련 문제