2013-05-06 6 views
0

Я хотел бы выровнять два вида (в данном случае UIButton экземпляров) рядом друг с другом. Я хочу, чтобы первая кнопка была выровнена в соответствии с ее супервидом, что легко, но я не вижу способа сделать вторую кнопку выровненной рядом с первой, не ссылаясь на первую ширину.Выравнивание вида рядом с другим видом с использованием FLKAutoLayout

Вот что я пытаюсь прямо сейчас:

UIView *superView = ...; 

    UIButton *buttonOne = [UIButton buttonWithType:UIButtonTypeCustom]; 
    buttonOne.translatesAutoresizingMaskIntoConstraints = NO; 
    [superView addView:buttonOne]; 
    [buttonOne constrainWidth:@"123" height:HEADER_HEIGHT_STRING]; 
    [buttonOne alignTop:nil leading:nil superView]; 

    UIButton *buttonTwo = [UIButton buttonWithType:UIButtonTypeCustom]; 
    buttonTwo.translatesAutoresizingMaskIntoConstraints = NO; 
    [self addSubview:buttonTwo]; 
    [buttonTwo constrainWidth:@"345" height:HEADER_HEIGHT_STRING]; 
    [buttonTwo alignLeadingEdgeWithView:buttonOne predicate:@"123"] 

Как избежать @"123" в последней строке кода? Я хочу, чтобы он просто использовал ширину buttonOne.

ответ

0

Ответ в моем случае состоял в том, чтобы не использовать FLKAutoLayout и учиться нам. NSLayoutConstraint непосредственно так:

NSDictionary *views = NSDictionaryOfVariableBindings(buttonOne, buttonTwo); 
[superView addConstraint:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[buttonOne][buttonTwo]-|" options:0 metrics:nil views:views]];