gpt4 book ai didi

ios - 更改 View 框架原点会使其弹回原位

转载 作者:行者123 更新时间:2023-11-30 13:11:37 24 4
gpt4 key购买 nike

当键盘出现时,我尝试将 View 向上移动。这适用于两个 View ,但在第三个 View 上,相同的代码导致 View 似乎向下移动一定量,然后移回其开始的确切位置,或者动画看起来如此。调试时,除了这个方法之外,我没有看到其他地方设置了 self.view.frame 。此外,偏移看起来是正确的,就好像 View 应该像其他 View 一样向上移动。请参阅下面的keyboardWillShow 方法。

func keyboardWillShow(notification: NSNotification){
if self.origFrame == nil{
self.origFrame = self.view.frame
}
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue(){
var testRect = self.view.frame
testRect.size.height -= keyboardSize.height
if !testRect.contains(loginBtn!.frame.origin){
let bottomSpace = self.view.frame.size.height - loginBtn.frame.origin.y - loginBtn.frame.size.height
let keyboardOverlap = keyboardSize.height - bottomSpace
let newY = self.origFrame!.origin.y - keyboardOverlap
self.view.frame.origin.y = newY
}
}
}

最佳答案

这就是我过去所做的

func textViewDidBeginEditing(textView: UITextView) {
let point:CGPoint = CGPoint(x: textView.frame.origin.x - 8, y: textView.frame.origin.y - 100)
scrollView.contentOffset = point
}

这会根据用户点击的 TextView 的位置向上移动 View 。 8 和 100 像素恰好是适合我的特定目的的范围。

或者,您可以通过编程方式调整约束,而不是移动框架。

关于ios - 更改 View 框架原点会使其弹回原位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38665209/

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