2014-10-22 3 views
0

у меня есть очень простой настройки:ios8 вид нагрузки от XIb: Невозможно одновременно удовлетворяют ограничениям

У меня есть пустой VC и UIView с UI в xib

MyView.m:

- (void) commonInit { 
    [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]; 
    [self addSubview:self.view]; 
} 

-(id)initWithCoder:(NSCoder *)aDecoder{ 
    self = [super initWithCoder:aDecoder]; 

    if (self) { 
     [self commonInit]; 
    } 

    return self; 
} 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 

    if (self) { 
     [self commonInit]; 
     self.bounds = self.view.bounds; 
    } 

    return self; 
} 

И my MyVC.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.myView = [[MyView alloc] init]; 
    NSDictionary *bindings = @{@"myView": self.myView}; 
    [self.view addSubview:self.offlinePromoView]; 

    self.myView.translatesAutoresizingMaskIntoConstraints = NO; 

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.myView 
                  attribute:NSLayoutAttributeCenterX 
                  relatedBy:NSLayoutRelationEqual 
                  toItem:self.view 
                  attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]]; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(topSpacing)-[myView]-|" options:0 metrics:@{@"topSpacing": @70} views:bindings]]; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[myView]-|" options:0 metrics:nil views:bindings]]; 
} 

Я хочу, чтобы мое подразделение прокладывать 70 точек сверху и иметь ту же ширину, что и вид контроллера. Но я получаю:

(
    "<NSLayoutConstraint:0x176ae8d0 MyView:0x176a7770.centerX == UIView:0x176a7840.centerX>", 
    "<NSLayoutConstraint:0x176b10b0 MyView:0x176a7770.leading == UIView:0x176a7840.leadingMargin>", 
    "<NSLayoutConstraint:0x176b0900 UIView:0x176a7840.trailingMargin == MyView:0x176a7770.trailing>" 
) 

0x176a7840 в моем VC self.view.

Что я делаю неправильно?

ответ

0

Попробуйте так: -

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[myView]-(-70)-|" options:0 metrics:nil views:bindings]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[myView]|" options:0 metrics:nil views:bindings]]; 
+0

Я понимаю, что я могу смывать вид на левую и правую сторону надтаблицы, но мне нужно, чтобы сохранить некоторые расстояния между ними. – user2786037

+0

ну может быть, в этом вопрос? – Jkmn

0
NSDictionary *bindings = NSDictionaryOfVariableBindings(view); 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(==70)-[view]-|" options:0 metrics:nil views:bindings]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[view]-|" options:0 metrics:nil views:bindings]]; 
+0

см. Мой комментарий к http://stackoverflow.com/a/26507257/2786037 ответ – user2786037

Смежные вопросы