mru*_*gen 9 iphone xcode uitextview
我在获取uitextview的正确大小时遇到了问题.在我的应用程序中,我从webservice获取数据,并根据webservice中的数据设置uitextview的高度.但是,只要前35个字母中有空格(textview的框架)是(20,0,255,2000)).那么计算的hjeight总是比正确的高度少一行甚至uitext视图开始在新行中的空格后打印行(可能是单词很大就是为什么??).
所以我得到了错误的文本视图高度.
文本视图像这样somwethibng:
firstword spacesspacesspacesspaces spacesspacesspacesspaces spacesspacesspacesspaces spacesspacesspacesspaces spacesspacesspacesspaces
当我输入没有空格的文本时,它给出了正确的高度,假设数据是"tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttиtt"Tttize,那么在上面的场景中,Cgsize将为我生成正确的结果.
在这里我不使用UILabel是因为我想要链接检测这就是为什么.如果有人有任何建议,我们非常欢迎.
关心Mrugen
Cha*_*zak 33
使用NSString的sizeWithFont方法实际上不适用于文本视图.它适用于UILabel,但文本视图似乎在文本周围有额外的填充.如果你使用那种方法,你的最终尺寸会有点短.
UITextView是UIScrollView的子类.设置textview的text属性后,其contentSize属性会自动更新以适合文本.因此,如果要设置文本视图的高度以适合其文本,请执行以下操作:
textView.text = @"some text";
CGRect rect = textView.frame;
rect.size.height = textView.contentSize.height;
textView.frame = rect;
Run Code Online (Sandbox Code Playgroud)
这将设置textView的高度,使其包含文本.
您可以使用此功能测量文本的高度,并根据返回的高度设置框架.
-(CGSize)sizeOfText:(NSString *)textToMesure widthOfTextView:(CGFloat)width withFont:(UIFont*)font
{
CGSize ts = [textToMesure sizeWithFont:font constrainedToSize:CGSizeMake(width-20.0, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap];
return ts;
}
Run Code Online (Sandbox Code Playgroud)
你这样使用它:
CGSize size = [self sizeOfText:@"the string you want to present" widthOfTextView:255 withFont:fontYouAreUsing];
Run Code Online (Sandbox Code Playgroud)
然后将其传递给文本视图:
textView.frame = CGRectMake(20,0,255,size.height);
Run Code Online (Sandbox Code Playgroud)
祝好运
SHANI
| 归档时间: |
|
| 查看次数: |
20002 次 |
| 最近记录: |