【问题标题】:UITextView content going under UINavigationBarUINavigationBar 下的 UITextView 内容
【发布时间】:2015-07-09 17:54:09
【问题描述】:

我在 UIViewController 内有一个 UITextView,它使用自动布局将其在所有方面都固定为 0(因此它会填满整个屏幕)。我也使用UINavigationController 推送了这个视图。

我遇到了一个奇怪的错误,如果UITextView 有足够的文本以至于它跑出屏幕,那么内容就会设置在UINavigationBar 下。如果没有足够的文本填满屏幕,则文本的布局不会位于UINavigationBar 之下。

这就是正在发生的事情,当有足够的文本离开屏幕时,您需要滚动才能查看所有内容。

我试过了:

  • 设置UITextView的内容插入。

  • 确保UINavigationBar 不是半透明的。

  • 尝试设置此self.automaticallyAdjustsScrollViewInsets = NO;

【问题讨论】:

    标签: ios objective-c uinavigationcontroller autolayout uitextview


    【解决方案1】:

    在您的 textView 所在的 viewController 的 viewDidLoad 中,添加以下内容:

    self.edgesForExtendedLayout = UIRectEdgeNone;
    

    【讨论】:

    • 那行不通。它只是将文本卡在 UINavigationBar 下 :( 感谢您的建议
    • 你有没有试过同时设置 self.edgesForExtendedLayout = UIRectEdgeNone;和 self.automaticallyAdjustsScrollViewInsets = NO; ?如果它把文本卡在导航栏下,我猜向 textView 添加内容插入会将它带到导航栏下方
    • 是的,我也尝试过,但它不起作用。更奇怪的是,设置内容插图仍然没有效果。它仍然以UINavigationBar 开头。当我向下滚动它时,虽然设置了内容插图。我也试过scrollRangeToVisible 也不起作用。
    【解决方案2】:

    我不确定为什么会出现问题,但这解决了它:

    - (void)viewDidLayoutSubviews {
        if (self.textView) {
            [self.textView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      相关资源
      最近更新 更多