【问题标题】:UITextView's frame not set in viewWillAppear [duplicate]UITextView 的框架未在 viewWillAppear 中设置 [重复]
【发布时间】:2013-07-28 10:16:00
【问题描述】:

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

我禁用了 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(在情节提要中配置)使用 push 方法自动显示。

感谢您的帮助!

【问题讨论】:

  • 谢谢,我找到答案了!

标签: ios interface-builder


【解决方案1】:

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

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

其实我打过电话:

[_view layoutSubviews];

在我父母看来:

- (void) viewDidLayoutSubviews;

访问框架之前的方法,它可以工作。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多