对于当UITextField在做输入的时候,被keyboard遮住的时候,官方給出了一片文章来作为解决方案,如果页面中单纯只有UITextField,那么本方案是可行的,但是如果页面中包含UITextView的时候,这个解决方案似乎就不那么灵了,一个是UITextView并没有UITextField那么丰富的action,所以官方的方案这时候并不适用,而去网上搜索,解决方案也甚少,在《Head First iPhone and iPad develpment》中的方法,我试过多次并不能成功,也可能我某些细节上出现错误,继续去google上探索,发现一片新的解决方案,不得不承认这种方法真的很简单也挺实用,根据稳重提示,最终将文中的方案得以在自己本机的环境中实现了一遍,不得不说群众的智慧是无限的,唯一不好的,多处一个toolbar,对于拥护体验来说是否合理,现在我还不能做最终,而这个方案在此也做个备份也许以后会用。
在实现过程中几个我认为是难点或者该注意的地方
1. 如果把toolbar从整个view中剥离出来:如果不把toolbar从整个view中剥离,那么出现的一种情况是,当键盘出现之后,整个页面上移(包括toolbar),我将toobar之外通过 Editor->Embed in ->Scroll View,之后如下图所示,图中可以看出,Toolbar并不属于Scroll bar,因此实现了将toolbar从view中剥离出现。
2. 因为之前不小心把 toolbar的属性中 ,结果出现了在界面,我点击toolbar的时候,toolbar成了透明。
3. 其实这个方案的实现原理我还是云里雾里....只知道如下一行代码,起的关键作用,以后慢慢领悟(注,在提到这个方法的时候,第二个参数0为85,而如果为85的时候,并不能达到预期效果.)
self.scrollview.transform = CGAffineTransformTranslate(self.view.transform, 0, 0);
The CGAffineTransformTranslate method was used to translate the view’s transform by 0 pixels in the x-direction and 85 pixels in the y-direction. Translating by a negative value for x or y moves an object left or up respectively, and translating by a positive value moves an object right or down.