为啥我的 UITextView 文本从开始时不显示并隐藏在导航栏下

Posted

技术标签:

【中文标题】为啥我的 UITextView 文本从开始时不显示并隐藏在导航栏下【英文标题】:Why my UITextView text is not show from starting and hide under Navigation Bar为什么我的 UITextView 文本从开始时不显示并隐藏在导航栏下 【发布时间】:2016-01-08 06:10:18 【问题描述】:

我想知道为什么我的 textview 文本没有从起始文本中显示出来。 这是来自我的 Xcode IB 的图像

当我在我的 iPhone 6 Simulator 和其他设备上运行它时

其实应该从“Example Notification....”开始

请帮帮我。

【问题讨论】:

选择你的view controller -> attribute inspector ->Unselect underTop Bars 那是因为它在导航栏后面拖到导航栏下方 @HamzaAnsari,我知道你在说什么。但是,如何显示不在导航栏下? 遵循@EICaptain 指令 ios 7 Table view fail to auto adjust content inset的可能重复 【参考方案1】:

那些没有从一开始就开始 UITextView 的人,这里是答案。我相信它在 iOS 8 及更高版本的任何设备上都能 100% 运行。

1.您需要在应用 textview 的视图控制器中取消选择这些

转到 ViewController > Attribute Inspector > Search Extend Edges > Under Top Bars & Under Button Bars

2.在视图控制器中添加以下代码

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()
    self.yourTextView.setContentOffset(CGPoint.zero, animated: false)

特别感谢@El Captain

【讨论】:

在 iOS 12 上仍然很强大【参考方案2】:

为了保持UINavigationBar 半透明 并允许用户在阅读UITextView 时旋转设备,我使用了这样的东西:

private var firstLayout = true

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    if firstLayout 
        firstLayout = false
        textView.setContentOffset(
            CGPoint(x: 0, y: -topLayoutGuide.length), animated: false)
        

在 iOS 9 和 iOS 12 Beta 上测试。

【讨论】:

【参考方案3】:

在我的例子中,它是 iOS 13。 UITextView 被限制在边缘。它的内容设置为确实加载,之后文本视图自动滚动到底部导致大标题缩小。 对我有帮助的是将 setText 包装到异步中:

DispatchQueue.main.async  
    textView.text = logs

【讨论】:

以上是关于为啥我的 UITextView 文本从开始时不显示并隐藏在导航栏下的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式设置时不显示 UITextView selectedRange

带有文本样式的 UITextView 缩进

UITextView从文本的底部或中间开始

为啥我的 UItextView 顶部的子视图没有被触摸?

UITextView 从底部开始

UITextView : 文本从文本视图的第二行开始