【发布时间】:2014-03-10 17:20:42
【问题描述】:
我想根据其内容更改文本视图的高度。我创建了调整其视图大小的方法。我第一次调用此视图控制器时,它会正确调整大小(高度 = 253),但其他时候不会(高度 = 296)。
我尝试从 viewDidAppear、viewWillAppear 和 viewDidLoad 调整它的大小。第一次调用 viewDidAppear 和 viewDidLoad。第二次和之后的所有方法(viewDidAppear、viewWillAppear 和 viewDidLoad)都被调用。我不知道原因,也不知道为什么会出现这种奇怪的行为,有什么线索吗?
-(void) setHeight
{
NSLog(@"Set height");
CGRect frame = descriptionTextView.frame;
frame.size.height = descriptionTextView.contentSize.height;
descriptionTextView.frame = frame;
NSLog(@"height: %f", descriptionTextView.frame.size.height);
if([[UIScreen mainScreen] bounds].size.height == 568) //iPhone 4inch
{
totalHeight = 380+frame.size.height;
[self.mainScrollView setContentSize:CGSizeMake(320,totalHeight)];
}
else{
totalHeight = 250+frame.size.height;
[self.mainScrollView setContentSize:CGSizeMake(320,totalHeight)];
}
}
我在我的项目中使用自动布局,但不用于此视图,因为我不知道如何根据带有自动布局的 textview 内容正确调整滚动视图(还包括另外 2 个带有标签、图像和按钮的视图)内的 textview 大小。使用自动布局比使用此功能更好吗?也许你可以帮助我解决这些限制......
【问题讨论】:
-
你在哪里调用该方法?你期望什么价值?我还看到您正在相应地更改滚动大小而不是 textView
-
您是否开启了自动布局?它可能会导致您正在谈论的问题。
-
我尝试从 viewWillAppear、viewDidAppear 和 viewDidLoad 调用它。相同的行为,第一次正确调整大小,第二次和以下时间没有。因为我有一个自定义标签栏,所以这个视图控制器(视图)被放置在一个容器视图中。
-
你在哪里实际设置 UITextView 的高度
标签: ios uitextview frame