Выравнивание вида рядом с другим видом с помощью 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]];