固予

关于UITextView中的_UITextContainerVi

2016-10-19  本文已影响1523人  AnderQZ

在一个二级界面中直接添加一个UITextView时,运行我发现有个奇怪的问题,就是TextView中的输入光标不是默认的在左上角出现,而是在距离下面大概64个像素点下面出现:

Simulator Screen Shot 2016年10月19日 上午2.11.54.png
然后我查看了一下它的图层,发现_UITextContainerView跑到下面去了:
屏幕快照 2016-10-19 上午12.18.32.png

正常情况下应该是在左上角的,现在跑到下面,实在难以理解。
经过研究发现,原来_UITextContainerView是一个“文字容器”的东西,是你当前输入的内容容器,要想实现iMessage那样的输入效果是要经过一些定义的,在此先不多说,解决这个蛋疼的问题先,毕竟这样很容易逼死强迫症患者。

经过漫长的查看(毕竟小白),才发现我做页面跳转时,是这样的:
屏幕快照 2016-10-19 上午2.12.18.png
调试正确的是这样的:
屏幕快照 2016-10-19 上午2.29.48.png

仅仅是一个跳转的方式不同,其中也是有差异性的,第一种的二级界面是直接用了一级界面的Navigation,而第二种则是独立出来的,二级界面的Navigation是与一级界面没有直接联系的,所以暂时推断问题是由Navigation引发的,问题解决了,后面再深究。

第二种解决方式:

原来,我们直接用push的方式跳转的子页面,_UITextContainerView会发生位移的情况,因为系统的automaticallyAdjustsScrollViewInsets默认是开启的:

@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES

把这个属性设置为No就行了,其他的保持原样。

上一篇下一篇

猜你喜欢

热点阅读