Выравнивание вида рядом с другим видом с помощью FLKAutoLayout

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

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

    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,

1 ответ

Решение

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

NSDictionary *views = NSDictionaryOfVariableBindings(buttonOne, buttonTwo);
[superView addConstraint:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[buttonOne][buttonTwo]-|" options:0 metrics:nil views:views]];
Другие вопросы по тегам