2010-05-24 121 views
0

我想我错过了一些明显的东西,并希望得到答案。向上滚动屏幕以显示键盘上方的TextView

我有一个2段分组tableView,每个部分有一个行和一个textView,行335和140的高度的视图。这允许一个有很好的圆角的框键入文本到键盘出现(140高度部分),当键盘被解散时,一个漂亮的盒子可以阅读更多的文字(注释);大多数情况下,使用没有键盘。

我还在屏幕底部添加了一个工具栏来在键盘上方向上滚动。工具栏上的按钮会关闭键盘。最后这部分工作正常键盘上上下下使用的通知,并在keyboardWillShow方法如下代码:

[UIView beginAnimations:@"showKeyboardAnimation" context:nil]; 
[UIView setAnimationDuration:0.50]; 
self.view.frame = CGRectMake(self.view.frame.origin.x, 
          self.view.frame.origin.y, 
          self.view.frame.size.width, 
          self.view.frame.size.height - 216); 
[UIView commitAnimations]; 

但与上面的代码中,的tableView的2个部分仍然未涡卷,只有工具栏和键盘移动。使用下面的代码(在以前的文章中都可以找到),工具栏和tableView部分都会移动。

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.50]; 

CGRect rect = self.view.frame; 
rect.origin.y -= 216; 
self.view.frame = rect; 

[UIView commitAnimations]; 

现在我知道我必须调整的数字得到一切我所想要的,但我的第一个问题是什么是2台的代码,该段在第二,但不是在移动之间的本质不同第一?工具栏也随第二个代码一起移动。

第二个问题是,我可以将屏幕下方的较小高度部分滚动到键盘上方,同时将工具栏向上移动216?

感谢

回答

1

我可能失去了一些东西,但在第一段代码,你是216,而在第二张的代码改变高度,你被改变了整个视图的由来在y方向上是216。

根据您在IB中设置的框架的不同,如果您不允许它沿该方向移动,则第一段代码可能不会移动它。在巡视窗口中检查您的设置。

当你说“unscrolled”你指的是他们没有改变主视图内的位置正确吗?这与他们实际滚动的不同(你可以通过改变滚动值来实现)。

你可能想看看这里的隐藏抽屉的例子,因为他们将视图进出主视图,有点像工具栏,我想这就是你要求的。虽然整个“滚动”的东西都扔掉了我。

http://cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

+0

谢谢,罗布。我盯着那个最长的(身高与起源),并没有看到它。链接是完美的让我做我想做的事。 – 2010-05-24 21:28:21

+0

永远不会因为一个问题而得到第二双眼睛!祝你好运,乐于帮助。 – iwasrobbed 2010-05-24 21:48:50

0

从内存中,像

tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight