【问题标题】:How do I get the text to align to the top in UITextView?如何让文本与 UITextView 中的顶部对齐?
【发布时间】:2017-09-14 03:02:07
【问题描述】:

运行 Xcode 8.3.3 我有一个 UITextView 填充整个视图。但是,文本没有与顶部对齐,而是在顶部有 80 多个点的填充 - 请参阅随附的屏幕截图。

我使用过约束、对齐和搜索文档,但看不到如何解决此问题。

任何指针将不胜感激。

【问题讨论】:

  • 使用故事板文本默认对齐到 textView 的顶部
  • 接下来的问题。如果它默认对齐到顶部,为什么我的文本没有执行默认行为?

标签: ios swift uitextview


【解决方案1】:

好的,根据您的查询,我已经尝试了一种解决方案,请看看这个

1) 这是第一个带有空间的输出,默认情况下您会得到 ​​p>

我使用下面的代码来显示那里实际发生的事情,我正在使用一个 textView 从上到下覆盖我的全屏来自故事板

 //Outlet
 @IBOutlet weak var myTextView: UITextView!

 //call the function and assign to TextView
 override func viewWillAppear(_ animated: Bool) {
        adjustContentSize(tv: myTextView)
    }

    //this will Add the respected boundaries to textView content 
    func adjustContentSize(tv: UITextView){
        let deadSpace = tv.bounds.size.height - tv.contentSize.height
        let inset = max(0, deadSpace/2.0)

        tv.contentInset = UIEdgeInsetsMake(inset, tv.contentInset.left, inset, tv.contentInset.right)
    }

    //Will check when value is changed
    func textViewDidChange(_ textView: UITextView) {
        self.adjustContentSize(tv: textView)
    }

--模拟器输出

2) 预期输出

--代码

//Outlet
 @IBOutlet weak var myTextView: UITextView!

 //call the function and assign to TextView
 override func viewWillAppear(_ animated: Bool) {
        adjustContentSize(tv: myTextView)
    }

//this will Add the respected boundaries to textView content 
    func adjustContentSize(tv: UITextView){
        tv.contentInset = UIEdgeInsetsMake(0, tv.contentInset.left, 0,tv.contentInset.right)
    }

    //Will check when value is changed
    func textViewDidChange(_ textView: UITextView) {
        self.adjustContentSize(tv: textView)
    }

--预期输出

希望对你有帮助:)

【讨论】:

  • 感谢您抽出宝贵的时间来解决这个问题。当我尝试它时,我仍然遇到同样的问题。请看我的回答..
【解决方案2】:

问题与自动布局有关。如果您查看问题中 textView 屏幕截图的定位,您可以看到 textView 相对于导航栏而不是 View 定位。通过向上移动顶部位置(见下面的屏幕截图),文本对齐问题得到解决。

【讨论】:

    【解决方案3】:

    使用 textContainerInset 将文本与 textView 顶部对齐 textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)

    如果您只想更改顶部插图,则可以从现有的 textContainerInset 中使用左侧、底部和右侧插图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 2014-05-12
      • 2015-02-12
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多