gpt4 book ai didi

ios - 在 UITextField 在 iOS 中激活后显示键盘时,试图限制 UIScrollView 内的滚动区域

转载 作者:行者123 更新时间:2023-11-28 21:40:51 26 4
gpt4 key购买 nike

我正在从事一个项目,我有一个 UIView,其中包含多个 UI 元素,包括一个 UITextField。一旦 UITextField 变为事件状态(即 becomesFirstResponder),弹出的键盘将覆盖 UITextField。包含所有 UI 元素的 UIView 位于 UIScrollView 中。

现在,除了将 contentView 向上移动到 UIScrollView 的可见区域之外,我需要做的另一件事是确保用户无法在键盘下方(和后面)滚动 contentView ,也不会在上面(和导航栏后面)滚动 contentView。

我到目前为止的相关代码是:

-(void)keyboardDidShow:(NSNotification *)notification {
CGFloat height = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;
self.scrollViewBottomContstraint.constant = height;
[self.view layoutIfNeeded];

}

谁能告诉我如何确保我的 contentView 只能在导航栏和键盘之间的可见区域内滚动最少?

最佳答案

当键盘通知出现时,我会:

  1. 更改 UIScrollView 上的约束常量,使其大小正好适合屏幕的可见部分。您已经从底部约束的高度设置开始沿着这条路走下去。
  2. 更改 UIScrollView 上的 contentSize 属性以匹配。这样,用户执行的任何滚动都仅限于他们可见的内容。

当键盘消失时,您可以恢复到进行这些调整之前的先前设置。

请注意,在某些情况下,使用带有静态表格单元格和其中静态内容的 UITableView 会更容易。 iOS 运行时似乎为您处理了一些滚动可见的东西。

关于ios - 在 UITextField 在 iOS 中激活后显示键盘时,试图限制 UIScrollView 内的滚动区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109291/

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