首页 文章

UITextview文本不在垂直视图上垂直居中

提问于
浏览
0

我有一个UITextView的扩展,它将文本垂直居中在UITextView上,我在下面的SO答案中找到了:https://stackoverflow.com/a/38855122/4660602

我的UITextView存在于UITableViewCell中,问题是该函数似乎不适用于初始加载 . 它只在我重新加载tableView或滚动时才有效 .

我在 cellForRowAtIndexPath 中调用该方法,但我已经尝试将它添加到 awakeFromNibprepareForReuse 中的自定义单元格类但是没有运气 . 想知道是否有人有任何其他建议/解决方案 .

编辑:

还忘了提一下,我的VC与tableView嵌入在navigationBar和tabBar中 . 当我切换到tabBar中的新VC然后返回时,UITextView文本错误地重新排列到顶部,即使它已经居中 .

谢谢!

2 回答

  • 0

    在视图中调整代码大小的正确位置是UIView.layoutSubviews . 由于您的居中功能取决于边界,您必须在layoutSubviews中调用它,否则边界可能不正确(即它们匹配nib中的whats而不是当前设备) . 您可以在cellforRowAtIndexPath中调用setNeedsLayout,以告知视图在设置文本后更新其布局 .

  • 1

    在iOS 10中,视图的边界尚未像之前一样在 viewDidLoadawakeFromNib 中初始化,因此基于视图's bound don'的函数在 viewDidLoadawakeFromNib 中工作 . 您应该在 viewDidAppear 中使用它,或者当视图的绑定已经被初始化时 .

相关问题