当键盘显示方法调用时,导航栏正在向上移动?

时间:2015-04-20 07:28:07

标签: ios

我正在编辑UITableview单元格,但在编辑期间我调用Keyboard会显示方法。课程后Textfield成功移动。但我不会移动UINavigationBar。 我怎样才能做到这一点。

由于

以下代码我正在使用:

if (KeyboardShowStatus) {

    NSNumber *duration = [note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSNumber *curve = [note.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    // get a rect for the textView frame
    CGRect containerFrame;
    if ([DataProvider sameInstance].systemVersion < 7) {

        containerFrame = CGRectMake(self.view.frame.origin.x,20,self.view.frame.size.width,self.view.frame.size.height);
        containerFrame.origin.y = self.view.bounds.size.height - containerFrame.size.height + 20;

    }
    else
    {
        containerFrame = self.view.frame;
        containerFrame.origin.y = self.view.bounds.size.height - containerFrame.size.height;
    }

    // animations settings
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:[duration doubleValue]];
    [UIView setAnimationCurve:[curve intValue]];

    // set views with new info
    self.view.frame = containerFrame;

    // commit animations
    [UIView commitAnimations];

}

2 个答案:

答案 0 :(得分:0)

您可以将UITextField和其他控件置于主UIView的另一个视图下,并更改该视图的Y位置。

你的故事板结构看起来像,

  • ViewContrller
    • 的UIView
      • ViewToMove //可以使用Simple UIView或ScrollView来更改滚动内容位置。
        • 的TextField
        • OtherCotrols

现在在你的代码中最后更改一些行,如

// animations settings
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:[duration doubleValue]];
[UIView setAnimationCurve:[curve intValue]];

// set views with new info
self.ViewToMove.frame = containerFrame;

// commit animations
[UIView commitAnimations];

希望这对你有所帮助。

享受编码!!

答案 1 :(得分:0)

  • 如果您正在接受UITableViewController键盘,请移动您的 细胞自动上升。如果这是真的,可能是有意义的 设置accessoryView对象的UITextField属性,使其成为
    出现在键盘上方。它可以让我们避免使用工具栏 共
  • 如果您正在使用简单的UIViewController或任何其他不支持滚动的内容,则可能值得查看 关注小型图书馆:IHKeyboardAvoing