使用FLKAutoLayout将视图与另一个视图对齐

时间:2013-05-06 22:09:00

标签: ios autolayout 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 个答案:

答案 0 :(得分:0)

我的答案是不使用FLKAutoLayout并向我们学习。 NSLayoutConstraint直接如此:

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