UITextView的框架未在viewWillAppear中设置

时间:2013-07-28 10:16:00

标签: ios interface-builder

我正在使用iOS 6和Xcode 4.6以及Interface Builder我在UITextView中添加了scrollbar view

我已停用Text View的滚动功能,我想动态调整Text View的大小,以便我们查看完整内容。

我在控制器中尝试使用以下代码:

- (void)viewWillAppear:(BOOL)animated {
    CGRect frame = _description.frame;
    frame.size.height = _description.contentSize.height;
    _description.frame = frame;
}

_description绑定到UITextView

在此代码中,框架位于(0, 0)位置,大小为(0, 0)。因此,它不会调整UITextView的大小。

我还尝试在这些函数中调整视图大小但没有成功:

- (void)viewDidLoad;
- (void)viewDidLayoutSubviews;

它工作的唯一功能(大小大于0的帧)是:

- (void)viewDidAppear:(BOOL)animated

但是,此时视图已经可见,我们可以看到Text View调整大小(这不是我想要的。我希望在用户看到视图之前调整大小)。

你能告诉我为什么我的UITextView's框架不正确以及我如何解决这个问题?

有关您的信息,此视图将使用推送方法自动显示TableViewCell(在故事板中配置)。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

感谢Cezar的评论,我找到了答案。

答案可以在Gettting subViews' frames in Storyboard找到。

我实际上打过电话:

[_view layoutSubviews];

在我父母的观点中:

- (void) viewDidLayoutSubviews;
访问框架之前的

方法,它可以正常工作。