【问题标题】:Set the height of a UITextView from a UIViewController's viewWillAppear event从 UIViewController 的 viewWillAppear 事件设置 UITextView 的高度
【发布时间】:2010-12-22 10:23:42
【问题描述】:

我正在尝试通过 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 被其他东西调整了大小。

我做错了什么?有什么好办法吗?

谢谢

-编辑-

通过将代码放入我的 viewDidAppear 而不是 viewWillAppear 来让它工作。 所以现在可以了。

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

【问题讨论】:

    标签: iphone objective-c cocoa-touch uitextview


    【解决方案1】:

    简单但明显的问题,文字是否发生变化,换句话说,插座是否与IB挂钩?

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

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

    【讨论】:

    • 当然,插座已经挂了。通过将代码放在 viewDidAppear 中,我已经设法让它工作了 - 很好。
    【解决方案2】:

    在只有此代码和单个 TextView 的应用程序中,调整大小会按预期进行。所以..这绝对是您应用中的其他内容。

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

    【讨论】:

    • 好吧,我已经通过将调整大小代码放在 viewDidAppear 中来实现它。现在我很好奇为什么将它放在 viewWillAppear 中不起作用!
    【解决方案3】:

    通过将代码放入我的 viewDidAppear 而不是 viewWillAppear 来让它工作。 所以现在可以了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-29
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多