【问题标题】:Resizing UITextView for Landscape Orientation为横向调整 UITextView 的大小
【发布时间】:2011-02-27 02:43:17
【问题描述】:

我在 IB 中创建了一个基本视图,其中包含一个 UITableView 和一个 UITextVIew。我以编程方式调整 UITextView 的大小以适合其内容,如下所示:

CGRect frame = self.textView.frame;
frame.size.height = self.textView.contentSize.height;
self.textView.frame = frame;

这适用于纵向,但在横向时,文本视图会增长以容纳额外的水平空间(这是所需的),但上面的代码使高度大于内容。从输出语句来看,上面的代码似乎没有考虑到文本视图的新宽度。

有什么方法可以考虑新的宽度以确定正确的高度吗?

【问题讨论】:

    标签: objective-c uitextview screen-orientation


    【解决方案1】:

    您必须在旋转后(来自控制器的旋转回调)调用 setNeedsLayout 来告诉 UITextView 在旋转后重新计算自身。

    编辑:OzzyTheGiant 是正确的 setNeedsLayout ,而不是 layoutSubViews。

    【讨论】:

    • 冠军!感谢您的帮助。
    • 根据文档,您永远不应该直接调用此方法,因为它效率低下。相反,您应该调用setNeedsLayout() 以在下一个更新周期触发更新,或者调用layoutIfNeeded() 以在更改待处理时立即更新
    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多