gpt4 book ai didi

ios - UIScrollView : UIEdgeInsets works only from "Top" and "Left"

转载 作者:行者123 更新时间:2023-11-28 08:46:26 25 4
gpt4 key购买 nike

我正在实现此方法以重新定位 UIScrollView 以显示被键盘弹出窗口遮挡的 UITextField:

Move a view up only when the keyboard covers an input field

ScrollView 没有按预期从底部移动键盘高度。变量 'keyboardSize!.height' 正在接收正确的高度值,如果我向 'bottom' 参数输入随机值,我会得到相同的结果。但是,如果我向“top”和“left”参数添加值,它们会在调用 keyboardWasShown 函数时移动 ScrollView 。

let contentInsets : UIEdgeInsets = UIEdgeInsets(top : 0.0, left : 0.0, bottom : keyboardSize!.height, right : 0.0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets

我在 TableViewController 上运行良好,但在 UIScrollView 上运行不佳。在这种情况下,UIViewController 有一个 UIView 和一个 UIScrollView 位于其上方。任何帮助表示赞赏。

* 编辑 *

该问题是 IB 中含糊不清的限制造成的。重置它们并使用建议的约束后,UIScrollView 可以正常工作。最初,顶部约束是相对于 UINavigationBar 而不是 View 的顶部设置的。

最佳答案

您需要在 ScrollView 中将文本字段向上滚动超过键盘

  CGRect visibleRect = CGRect(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: self.view.frame.size.width, height: self.view.frame.size.height - keyboardSize?.height ?? 0);

[scrollView setContentOffset:visibleRect.center animated:YES];

关于ios - UIScrollView : UIEdgeInsets works only from "Top" and "Left",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185208/

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