这是我想要调整其内容高度的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 size"
感谢您的帮助
答案 0 :(得分: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
。所以请继续,设置初始frame
,执行addSubview
,然后根据textView.contentSize.height
重新调整大小。
答案 1 :(得分: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。这也适用于文本视图,但您必须考虑昆虫。简单的解决方案,只是从文本视图的框架宽度比宽度减去一些“模糊偏移”。