自动布局新手 - 为什么我的视图不出现?

时间:2013-06-27 00:30:18

标签: ios objective-c autolayout nslayoutconstraint

我有以下代码:

        UITextField *loginBox = [[UITextField alloc] init];
        loginBox.translatesAutoresizingMaskIntoConstraints = NO;

        [self.view addSubview:loginBox];

        NSLayoutConstraint *horizontalPlacementConstraint = [NSLayoutConstraint constraintWithItem:loginBox attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:0.0];
        [self.view addConstraint:horizontalPlacementConstraint];

        NSLayoutConstraint *verticalPlacementConstraint = [NSLayoutConstraint constraintWithItem:loginBox attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0];
        [self.view addConstraint:verticalPlacementConstraint];

        NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:loginBox attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:100];
        [self.view addConstraint:widthConstraint];

(在IB中无法做到。)

但是当我加载视图时,它从不显示文本字段。为什么是这样?

2 个答案:

答案 0 :(得分:1)

您的UITextField肯定在那里并正确放置在0, 0。 你可能只是看不到它。设置borderStyle或类似内容:

loginBox.borderStyle = UITextBorderStyleRoundedRect;

答案 1 :(得分:0)

它没有高度。

这将是我要改变的第一件事。

也安装高度限制。