从UIViewController的viewWillAppear事件设置UITextView的高度

时间:2010-12-22 10:23:42

标签: iphone objective-c cocoa-touch uitextview

我正在尝试从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太长?底部有一个标签栏,顶部有一个导航栏。那令人困惑吗?

3 个答案:

答案 0 :(得分:2)

简单但显而易见的问题,文本是否发生变化,换句话说,是IB中的出口?

JUSTA提示:查看使用CGRect的辅助函数,例如:

textView.frame = CGRectInset(textView.frame, 0, 20);

答案 1 :(得分:1)

在只有此代码和单个TextView的应用程序中,调整大小按预期发生。所以......你的应用程序肯定是别的东西。

您是否可以在viewDidAppear中引用contentsize属性或其他内容?

答案 2 :(得分:0)

通过将代码放在viewDidAppear而不是viewWillAppear中来实现它。 所以它现在有效。

虽然我很困惑为什么我需要这样做(从底部删除20个像素) - 我的意思是不应该调整大小以自动填充?为什么它调整到20px太长?底部有一个标签栏,顶部有一个导航栏。