微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 当键盘出现AutoLayout时移动UIView

我有一个UIView,无论UIKeyboard出现还是消失,我都想上下移动.不幸的是我无法让它发挥作用.
在AutoLayout之前,这是一个明智的选择,但自从AutoLayout以来我遇到了一些麻烦.

这是我到目前为止:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addobserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addobserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification object:nil];
    self.keyboardisShown = NO;

}

-(void)viewWilldisappear:(BOOL)animated {
    [super viewWilldisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillShowNotification
                                                  object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIKeyboardWillHideNotification
                                                  object:nil];
}


-(void)keyboardWillShow:(NSNotification*)notification{
    if (self.keyboardisShown) {
        return;
    }

    //change y Position of self.loginView

    self.keyboardisShown = YES;
}

-(void)keyboardWillHide:(NSNotification*)notification{
    //Change y Position of self.loginView
    self.keyboardisShown = NO;
}

当然这些方法调用但我需要一些关于如何改变我的UIView的y位置的指导.只是改变框架的y位置根本不起作用.

在这里,您可以找到我添加到UIView的约束的界面设置.

因此除了UIImageView之外的所有组件都包含在loginView Outlet中.这是我想要根据键盘显示与否来上移或下移的视图.

这对我来说很难,就像你可能看到的那样,UIImageView有一个固定的高度,宽度和垂直居中.

解决方法

我刚做完了基本上,包装在容器视图中移动所需的所有内容,然后与键盘显示/隐藏通知一起设置顶部约束常量的动画.

UIKeyboardWillShowNotification
UIKeyboardDidHideNotification

通知中是userInfo,它将告诉您键盘的高度,还可以让您的动画与键盘同步以实现平滑过渡.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐