2017-09-14 86 views
-2

运行Xcode 8.3.3我有一个填充整个视图的UITextView。但是,文本并没有对齐顶部,但在顶部填充了80多个点 - 请参阅附加的屏幕截图。如何让文本对齐到UITextView的顶部?

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

任何指针,将不胜感激。

enter image description here

+0

使用情节提要文本默认情况下对齐到textView顶部 –

+0

后续问题然后。如果默认情况下它与顶部对齐,为什么我的文本没有执行默认行为? – fmz

回答

0

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

0

好的基础上查询我试过一个解决方案,请看看这个

1)这里是你默认

越来越

我用下面的空间的第一输出代码来实际显示那里发生了什么,我使用的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) 
    } 

--Simulator输出

enter image description here

2)如预期的输出

--Code

//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) 
    } 

--Expected输出

enter image description here

希望它可以帮助你:)

+0

感谢您花时间完成这项工作。正如我尝试过的那样,我仍然遇到同样的问题。请看我的答案.. – fmz