【发布时间】:2014-10-24 08:47:15
【问题描述】:
我需要在 UITextField 下方画一条线。我通过创建高度为 1 的 UIView 使用最简单的方法。问题是 UITextField 使用自动布局定位在 IB 中,并且在调用 -viewDidLoad 时似乎它的框架未确定。以前我使用这种画线的方式,所有视图都使用代码进行布局。在这种情况下,如何确定我的 UITextField 的坐标?
我用这段代码来创建一行
- (void)drawLineBelowTextFied:(UITextField *)textField {
#define LINE_MARGIN 20
//draw a line
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(LINE_MARGIN, textField.frame.origin.y + textField.frame.size.height, self.view.bounds.size.width-LINE_MARGIN*2, 1)];
line.backgroundColor = [UIColor grayColor];
line.alpha = 0.25f;
line.clipsToBounds = NO;
[_loginView insertSubview:line belowSubview:textField];
线无处出现。如果我用常数替换 y 坐标,它就会出现。
【问题讨论】:
-
在 viewDidLoad() 或 viewDidAppear() 内执行 drawLineBelowTextField 之后?在 viewDidLoad 中,视图的框架可能尚未初始化,也可能尚未初始化。
标签: ios objective-c uiview autolayout frame