gpt4 book ai didi

ios - 如何以编程方式更新约束并解决登录屏幕的键盘问题

转载 作者:行者123 更新时间:2023-11-28 12:12:53 24 4
gpt4 key购买 nike

我有下一个问题。

我有这个登录界面

enter image description here

当登录名或密码文本框获得焦点时,我们会显示键盘。键盘覆盖了我的 View 。

于是尝试用observer制作NotificationCenter并实现方法:

@objc func kbDidShow(notification : NSNotification) {
guard let userInfo = notification.userInfo else { return }
let kbFrameSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue

(self.view as! UIScrollView).contentSize = CGSize(width: self.view.bounds.size.width, height: self.view.bounds.size.height + kbFrameSize.height)

(self.view as! UIScrollView).scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: kbFrameSize.height, right: 0)
}

因此,当键盘出现时,我正在添加 kb 大小以供查看。另外,你可以看到我添加了 scrollview。

enter image description here

我认为 scrollview 工作正常

但是

当我滚动时,我的登录表单仍然被键盘覆盖。如果我滚动到末尾,我会看到我的 View 会重复,因为它带有渐变。

我认为,为什么我在 kb 下的登录表单的问题是我在表单“Забыли пароль”中的最后一个按钮?具有常数 92 的底部约束(另一个元素我开始从这个按钮计算约束)。当我删除它时,一切正常,但我无法在没有底部限制的情况下工作。另外,我不能将约束更改为使用顶部约束,因为对我来说,登录表单距底部 92pt 非常重要。

我认为解决方案是为我的按钮“забыли пароль?”添加现有约束。现有约束 + kb 高度。

我怎样才能做到?

我的按钮“Забыли пароль?”在名为 forgotPassword 的代码中

第二个问题,当用户将登录或密码字段设置为焦点时,我如何添加动画以将我的​​登录表单平滑滚动到 View 中心?我需要设置字段中心“loginPassword”以查看中心

最佳答案

将底部按钮的底部约束拖动为 IBOulet

然后这样做

    @objc func kbDidShow(notification : NSNotification) {
guard let userInfo = notification.userInfo else { return }
let kbFrameSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue

self.buttonBottomcon.constant = kbFrameSize.height

UIView.animateWithDuration(1.0,
{

self.view.LayoutIfNeeded()

}

}

当键盘隐藏时

 @objc func kbWillHide(notification : NSNotification) {

self.buttonBottomcon.constant = 0

UIView.animateWithDuration(1.0,
{

self.view.LayoutIfNeeded()

}

}

关于ios - 如何以编程方式更新约束并解决登录屏幕的键盘问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47895429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com