我正在尝试从UIViewController的viewWillAppear事件设置UITextView的高度,这里是代码:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
textView.text = blah blah...
textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y,
textView.frame.size.width, textView.frame.size.height-20);
}
然而,它似乎忽略了我的大小调整,就好像在调用此事件之后,textview会被其他内容调整大小。
我做错了什么?有没有好办法呢?
由于
-edit -
通过将代码放在viewDidAppear而不是viewWillAppear中来实现它。 所以它现在有效。
虽然我很困惑为什么我需要这样做(从底部删除20个像素) - 我的意思是不应该调整大小以自动填充?为什么它调整到20px太长?底部有一个标签栏,顶部有一个导航栏。那令人困惑吗?
答案 0 :(得分:2)
简单但显而易见的问题,文本是否发生变化,换句话说,是IB中的出口?
JUSTA提示:查看使用CGRect的辅助函数,例如:
textView.frame = CGRectInset(textView.frame, 0, 20);
答案 1 :(得分:1)
在只有此代码和单个TextView的应用程序中,调整大小按预期发生。所以......你的应用程序肯定是别的东西。
您是否可以在viewDidAppear中引用contentsize属性或其他内容?
答案 2 :(得分:0)
通过将代码放在viewDidAppear而不是viewWillAppear中来实现它。 所以它现在有效。
虽然我很困惑为什么我需要这样做(从底部删除20个像素) - 我的意思是不应该调整大小以自动填充?为什么它调整到20px太长?底部有一个标签栏,顶部有一个导航栏。