Xcode 如何沿InteractivePopgestureRecognitor滑动键盘?

Xcode 如何沿InteractivePopgestureRecognitor滑动键盘?,xcode,ios7,keyboard,uigesturerecognizer,pan,Xcode,Ios7,Keyboard,Uigesturerecognizer,Pan,我想知道如何用可视键盘滑动ViewController 在iOS 7中,我可以左右滑动ViewController,但键盘保持不变 简言之,我想谈谈以下情况: 谢谢 更新: 我不能推荐原来的解决方案。虽然它的表现很好(当它表现出来的时候),但它是一个不可靠的黑客,很容易破坏流行手势识别器 我的同事提出了一个使用iOS 7视图控制器转换的伟大解决方案,并将其打包成一个pod: 安装后,只需导入主文件,就可以开始了 原件: 我很想知道是否有更好的方法来实现这一点,但我通过将键盘视图添加为视图控

我想知道如何用可视键盘滑动ViewController

在iOS 7中,我可以左右滑动ViewController,但键盘保持不变

简言之,我想谈谈以下情况:

谢谢

更新: 我不能推荐原来的解决方案。虽然它的表现很好(当它表现出来的时候),但它是一个不可靠的黑客,很容易破坏流行手势识别器

我的同事提出了一个使用iOS 7视图控制器转换的伟大解决方案,并将其打包成一个pod:

安装后,只需导入主文件,就可以开始了


原件: 我很想知道是否有更好的方法来实现这一点,但我通过将键盘视图添加为视图控制器主视图的子视图来实现这一行为:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.textView.inputAccessoryView = [UIView new];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    [center addObserver:self
               selector:@selector(keyboardWillHide:)
                   name:UIKeyboardWillHideNotification
                 object:nil];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)keyboardWillHide:(NSNotification *)note
{
    if (self.textView.isFirstResponder) {
        UIView *keyboardView = self.textView.inputAccessoryView.superview;
        if (keyboardView) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [self.view addSubview:keyboardView];
            });
        }
    }
}

我发现你也可以用手势为键盘设置动画(通过
addTarget:action:
),但是如果过早取消手势,性能会非常糟糕,而且无法清晰地设置动画。

嗨,斯蒂芬。不幸的是,这对我来说不是一个好的解决方案。在我使用这种方法后,PopPastive立即中断。@ToMerrbin我意识到必须在UITextView(或UITextField)上设置inputAccessoryView才能正常工作。我已经在一个空白项目中测试了(更新的)上述代码,它工作得很好。