在popover的顶部,我有一个高度为100px的UITextView
,其文本容器已插入,我已使用textView.textContainerInset = UIEdgeInsets(...)
进行了调整。弹出窗口的高度随着self.navigationController?.preferredContentSize.height = someHeight
的变化而变化,其中self
是UIViewController
和UIPopoverPresentationControllerDelegate
的子类。
当我使用该方法调整弹出窗口的高度时,文本视图的文本容器大约下降50px,就好像它的插图是动画一样。在调整高度无效后,我尝试显式重置文本容器插图。
打开视图调试器显示文本视图本身仍然是100px高,但清楚地显示文本容器(列为_UITextContainerView
且无法直接访问)已下降约50px。
知道导致插入内容的原因是什么导致_UITextContainerView
丢失了吗?
答案 0 :(得分:1)
我最终在视图控制器上设置了self.automaticallyAdjustsScrollViewInsets = false
,这就行了。
我怀疑这是有效的,因为UITextView
在文本超出其界限时有滚动行为(不确定它是否是一个完整的滚动视图内部或不是,我在某些地方读过它是和其他人说它不是。)并且因为包含视图控制器的首选内容大小的高度已经改变,它对文本视图的内容有影响(这个内容是前面提到的_UITextContainerView
。)所以通过设置self.automaticallyAdjustsScrollViewInsets = false
,这使文本视图停止了大约50px的文本容量,结果是44px(新旧高度之间的差值。去图!)