我在计算 UITextField 中显示的 NSString 的准确大小时遇到问题。
我的目标是以编程方式根据字符串大小更新文本字段框架大小(不使用sizeToFit)。我正在使用sizeWithFont函数。
-(void)resizeTextFieldAccordingToText:(NSString*)textFieldString {
CGPoint originalCenter = self.textField.center;
UIFont* currentFont = [textField font];
CGSize newSize = [textFieldString sizeWithFont:currentFont];
//Same incorrect results with the extended version of sizeWithFont, e.g.
//[textFieldString sizeWithFont:currentFont constrainedToSize:CGSizeMake(300.0, 100.0) lineBreakMode:NSLineBreakByClipping];
[self.textField setFrame:(CGRectMake(self.textField.frame.origin.x, self.textField.frame.origin.y, newSize.width, newSize.height))];
[self.textField setCenter:originalCenter];
}
问题:虽然这会返回正确的大小结果,但通过添加字符变得越来越不精确,因此最终开始剪切字符串(如右侧屏幕截图所示)。
如何获得 textField 字符串的准确大小以正确调整其大小?