Iphone 向上滚动屏幕以显示键盘上方的文本视图

Iphone 向上滚动屏幕以显示键盘上方的文本视图,iphone,keyboard,uitextview,Iphone,Keyboard,Uitextview,我想我遗漏了一些显而易见的东西,如果能给我一个答案,我将不胜感激 我有一个视图,它有一个两部分的分组表视图,每个部分有一行和一个文本视图,高度为335行和140行。这样,当键盘出现(140高度部分)和键盘被关闭时,一个带有圆角的框可以输入文本,一个可以阅读更多文本的框(注释);大多数情况下,使用无需键盘 我还在屏幕底部添加了一个工具栏,可以在键盘上方向上滚动。工具栏上的按钮将关闭键盘。最后一部分可以使用通知和键盘WillShow方法中的以下代码使键盘上下移动: [UIView beginAnim

我想我遗漏了一些显而易见的东西,如果能给我一个答案,我将不胜感激

我有一个视图,它有一个两部分的分组表视图,每个部分有一行和一个文本视图,高度为335行和140行。这样,当键盘出现(140高度部分)和键盘被关闭时,一个带有圆角的框可以输入文本,一个可以阅读更多文本的框(注释);大多数情况下,使用无需键盘

我还在屏幕底部添加了一个工具栏,可以在键盘上方向上滚动。工具栏上的按钮将关闭键盘。最后一部分可以使用通知和键盘WillShow方法中的以下代码使键盘上下移动:

[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的两个部分保持未滚动状态,只有工具栏和键盘移动。使用以下代码(在前面的文章中都可以找到),工具栏和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];
现在我知道我必须调整数字,以得到我想要的一切,但我的第一个问题是,在第二节移动而不是第一节移动的两组代码之间有什么实质性的不同?工具栏也会随着第二个代码一起移动

第二个问题是,我是否能够将较小的高度部分从屏幕外滚动到键盘上方,同时将工具栏向上移动216


谢谢

我可能遗漏了一些东西,但是在第一段代码中,您将高度更改了216。在第二段代码中,将整个视图的原点在y方向上更改216

根据您在IB中设置帧的方式,如果您不允许第一段代码向该方向移动,那么它可能不会移动。在inspector窗口中检查您的设置

当你说“未滚动”时,你指的是它们在主视图中没有改变位置,对吗?这与实际滚动不同(您也可以通过更改滚动值来实现)

您可能想在这里查看隐藏抽屉示例,因为它们将视图推入和移出主视图,有点像工具栏,我想这就是您要问的。整个“滚动”的事情让我很反感


来自内存,类似

tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

谢谢你,罗伯。我盯着它看了很长时间(高度和原点),但没有看到它。这个链接非常适合让我去做我想做的事情。在一个问题上获得第二双眼睛绝对不会有伤害!祝你好运,很乐意帮忙。