根据iOS中的文本宽度动态更改文本视图宽度

时间:2011-10-13 08:23:48

标签: objective-c ios

我已创建并向视图添加了一个文本字段,如下所示

CGRect frame = CGRectMake(20, 100, 280, 20);
UITextField *utf = [[UITextField alloc] initWithFrame:frame];
...
[scrollView addSubview:itemBrand];

假设文本视图上的文本为abcdefghijklmno,宽度为100。

如何动态地将文本视图的内容更改为100而不是280?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用此功能询问文本大小:

CGSize textSize = [inputText sizeWithFont:font 
                               constrainedToSize:maximumLabelSize 
                                   lineBreakMode:UILineBreakModeWordWrap];

inputText是您想要询问其大小的文本。

font是您用于文本的字体。

maximumLabelSize是允许文本的最大大小。

在此之后,您可以将文本字段编码为此大小。

答案 1 :(得分:0)

复制框架,以便修改if(执行utf.frame.size.width =某些东西,不起作用)

CGRect f = utf.frame;
f.size.width = yourNewWidth;
utf.frame = f;