就是一个AView里面包含两个textField, 如果随便点击其中一个, AView就会往上跑了,当然AView里面的内容也跟着移动, 没有设置到setContentOffset之类的

解决方案 »

  1.   

    setFrame
      

  2.   


    setFrame没用的, 我测试过 点和不点 uitextfield 后的 frame,都是一样的
      

  3.   

    AView也是作为subview添加到self.view中的。你要调整的是self.view的frame.
      

  4.   


    //恢复原始视图位置
    -(void)resumeView
    {
        if ( _mbIsShowKeyboard )
        {
            NSTimeInterval animationDuration=0.30f;
            [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
            [UIView setAnimationDuration:animationDuration];
            
            //如果当前View是父视图,则Y为20个像素高度,如果当前View为其他View的子视图,则动态调节Y的高度
            float fX = self.view.frame.origin.x;
            float fY = self.view.frame.origin.y + 130;
            float width = self.view.frame.size.width;
            float height = self.view.frame.size.height;
            //上移30个单位,按实际情况设置
            self.view.frame = CGRectMake(fX, fY, width, height);
            [UIView commitAnimations];
            
            _mbIsShowKeyboard = false;
        }
    }// 移动窗口
    -(void) moveView
    {
        if ( !_mbIsShowKeyboard )
        {
            NSTimeInterval animationDuration=0.30f;
            [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
            [UIView setAnimationDuration:animationDuration];
            float fX = self.view.frame.origin.x;
            float fY = self.view.frame.origin.y - 130;
            float width = self.view.frame.size.width;
            float height = self.view.frame.size.height;
            //上移30个单位,按实际情况设置
            self.view.frame = CGRectMake(fX, fY, width, height);
            [UIView commitAnimations];
            
            _mbIsShowKeyboard = true;
        }
    }自己多尝试下,如果想要完整的工程,百度一下,一大把。
      

  5.   

    只要移动AView或是AView所在的View就可以了,里面的控件会跟着移动的。
      

  6.   

    我也遇到这个bug了
      

  7.   

    百度IQKeyBoardManager。直接下载了拖项目里,代码都不用写,完美解决键盘弹出遮盖问题
      

  8.   

    你的Aview是一个第三方UIView的子类吧,看看他的源代码,他估计有为防止键盘遮挡而做的一些操作。