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