0

这是我想要调整到其内容高度的 UITextView 的代码。

如果我像这样明确地写出textView.frame高度:

    textView.frame = CGRectMake(100, 12, 320, 458);

textView 的大小与预期的一样。

但是,如果我这样写。尽管 NSLog 语句说有一个值,但它甚至不显示textView.contentSize.height

UITextView *textView = [[UITextView alloc] init];
textView.layer.borderWidth = 5.0f;

textView.layer.borderColor = [[UIColor redColor] CGColor];

textView.text = [item objectForKey:@"description"];

textView.frame = CGRectMake(100, 12, 320, textView.contentSize.height);


NSLog(@"%f textviewcontnet size", textView.contentSize.height);

textView.editable = NO;

[self.view addSubview:textView];

当我记录以下输出时:

NSLog(@"%f textviewcontent size", textView.contentSize.height);

我得到“458.000000 textviewcontent 大小”

谢谢你的帮助

4

2 回答 2

1

我建议尝试:

UITextView *textView = [[UITextView alloc] init];
textView.layer.borderWidth = 5.0f;
textView.layer.borderColor = [[UIColor redColor] CGColor];
textView.text = [item objectForKey:@"description"];
textView.frame = CGRectMake(100, 12, 320, 458);    
textView.editable = NO;

[self.view addSubview:textView];

textView.frame = CGRectMake(100, 12, 320, textView.contentSize.height);    

我听说在textView.contentSize.height将其添加到视图之前不起作用(尽管这不是我的经验)。textView.contentSize.height更重要的是,如果它还不知道控件的宽度是多少,我不知道它会如何解释。所以继续,设置初始值frameaddSubview然后根据 重新调整大小textView.contentSize.height

于 2013-02-23T22:24:06.617 回答
0

快速从我的一个项目中复制出来:

AppDelegate *appDelegate;

CGSize  textSize1, textSize2;

appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

textSize1 = [self.subjectLabel.text sizeWithFont:[appDelegate fontNormal] constrainedToSize:CGSizeMake(300.0f, 10000.0f) lineBreakMode:NSLineBreakByWordWrapping];
self.subjectLabel.frame = CGRectMake(10, 5, 300, textSize1.height);
textSize2 = [self.descriptionLabel.text sizeWithFont:[appDelegate fontNormal] constrainedToSize:CGSizeMake(300.0f, 10000.0f) lineBreakMode:NSLineBreakByWordWrapping];
self.descriptionLabel.frame = CGRectMake(10, 5 + textSize1.height + 5, 300, textSize2.height);

[appDelegate fontNormal]只返回一个 UIFont 对象,我用于所有“普通”文本项的对象。不要担心太多。但重要的是您也要使用与文本视图相同的字体。

我的例子更简单一些,因为它是一个 UILable。这也适用于文本视图,但您必须考虑昆虫。简单的解决方案,与文本视图的框架宽度相比,只需从宽度中减去一些“模糊偏移”。

于 2013-02-23T20:59:30.263 回答