如何在UITextField中将用作leftView的UILabel与textField的文本垂直对齐?

时间:2012-07-04 16:34:59

标签: ios xcode ios5 uitextfield uilabel

我使用UILabel作为leftView的{​​{1}}。问题是textField的文本高于标签的文本。

这是我到目前为止使用的代码

UITextField

我尝试过稍微改变标签的框架,但它不起作用......

如何对齐两个文本?

1 个答案:

答案 0 :(得分:5)

您可以创建一个容器视图,在其中放置UILabel 1px。

    UIView * v = [[UIView alloc] init];
    v.backgroundColor = [UIColor clearColor];

    UILabel *startsWith = [[UILabel alloc] init];
    startsWith.font = self.textfield.font;
    startsWith.textAlignment = self.textfield.textAlignment;
    startsWith.textColor = [UIColor blackColor];
    startsWith.backgroundColor = [UIColor clearColor];
    startsWith.text = @"Text";
    [startsWith sizeToFit];

    startsWith.frame = CGRectOffset(startsWith.frame, 0, -1);
    v.frame = startsWith.frame;
    [v addSubview:startsWith];
    self.textfield.leftViewMode = UITextFieldViewModeAlways;
    self.textfield.leftView = v;