UITextFiled和UILabel布局因砌体而失败

时间:2016-11-04 11:05:01

标签: ios objective-c masonry

结构是一个带有标签和文本字段的视图。 我需要在标签中调整不同字体大小的不同设备,文本字段的宽度根据标签的宽度灵活。

以下代码:

    UIView *selectBgView = [[UIView alloc] init];
    selectBgView.backgroundColor = [UIColor redColor];
    [condiView addSubview:selectBgView];
    [selectBgView makeConstraints:^(MASConstraintMaker *make) {
        make.width.equalTo(@200);
        make.height.equalTo(@20);
        make.left.equalTo(@10);
        make.top.equalTo(@20);
    }];

    UILabel *label = [[UILabel alloc] init];
    label.backgroundColor = [UIColor grayColor];
    label.font = [UIFont systemFontOfSize:13];
    label.text = @"Type :";
    [condiView addSubview:label];
    [label makeConstraints:^(MASConstraintMaker *make) {
        make.left.top.bottom.equalTo(selectBgView);
    }];

    UITextField * textField = [[UITextField alloc] init];
    textField.borderStyle = UITextBorderStyleRoundedRect;
        textField.font = [UIFont systemFontOfSize:13];
    [condiView addSubview:textField];
    [textField makeConstraints:^(MASConstraintMaker *make) {
        make.right.top.bottom.equalTo(selectBgView);
        make.left.equalTo(label.right);
    }];

它不像下图所示。

enter image description here

但是当我用视图交换文本字段时。它有效!

enter image description here

    UIView *view = [UIView new];
    view.backgroundColor = [UIColor greenColor];
    [condiView addSubview:view];
    [view makeConstraints:^(MASConstraintMaker *make) {
        make.right.top.bottom.equalTo(selectBgView);
        make.left.equalTo(label.right);
    }];

如果有人能帮助我的话!任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的标签没有指定宽度,因此它只是需要的宽度。视图的工作方式不同,因为它们没有调整大小以适应内容。尝试并指定文本字段的宽度,或将其固定在右侧并带有偏移量。