在用户在UITextField - iOS中输入内容后添加不可编辑的标签

时间:2016-04-23 21:47:30

标签: ios objective-c uitextfield

我想有一个文本字段,用户可以用磅输入他们的体重。目前,它正在按照我想要的方式进行输入,但我想添加一个不可编辑的“lbs”字符串,该字符串始终显示在用户输入的内容之后(例如,如果是用户,则为“140磅”)类型140),但不会干扰从textFieldDidEndEditing接收的值。在某种程度上,它基本上是一个静态标签,随着用户的输入而移动。最好的方法是什么?顺便说一句,我正在使用Objective-C。

1 个答案:

答案 0 :(得分:2)

UILabel上添加UITextField并将其设为userInteractionEnabled = NO。而且你必须在每次输入时计算文本的宽度。当您的textField.text变得更宽时,移动您的标签。这里有帮助方法,可以帮助您根据字体

计算string的大小
- (CGSize)sizeWithFont:(UIFont*)font boundingRectToHeight:(CGFloat)height {
    NSMutableParagraphStyle* paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;

    NSDictionary * attributes = @{NSFontAttributeName:font,
                                  NSParagraphStyleAttributeName:paragraphStyle};

    CGRect textRect = [self boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height)
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:attributes
                                         context:nil];

    return textRect.size;
}