gpt4 book ai didi

ios - 点击字段时 zoomScaled UIScrollView 定位不正确

转载 作者:行者123 更新时间:2023-11-29 00:35:46 29 4
gpt4 key购买 nike

当 UIScrollView 放大时,我遇到了一个奇怪的问题。

我们在 iPad 上的 UIScrollView 中显示用户创建的表单,因此字段的大小可以不同。定位似乎可以很好地处理向上移动字段(通过在键盘出现时添加内容偏移量),但点击字段的行为似乎也进行了某种定位。

我的问题是 - 如果用户放大到字段比 View 宽的点,点击该字段(即使键盘已经可见)会将 View 一直滚动到 ,尽管是从左到右的文本输入,字段中还没有文本。这会将字段的左侧(用户期望输入的位置)推离屏幕的左侧。

注意 - 如上所述,如果键盘已经可见并且用户已经在编辑字段,也会发生这种情况。再次点击该字段(以显示删除/复制/粘贴等)也会将 ScrollView 推到右侧,从而切断该字段的第一部分。

理想的解决方案是滚动它,使插入符号位置在屏幕上可见,但找不到与此问题相关的任何内容,也找不到任何其他人在 SO 或 google 上看到过它的证据。

示例 - Example position

最佳答案

可以通过添加符号断点来定位问题:

[UIScrollView setContentOffset:animated:]

enter image description here

enter image description here

再次运行您的应用程序并在错误发生之前启用断点。

当你触发断点时,你可以看到这样的线程跟踪:

enter image description here

所以问题是,当 UITextField 调用 becomeFirstResponder 时,它还会使用 Scrollview 中文本字段的框架矩形调用 [UIScrollView rollRectToVisible:animated:](如果它包含在UIS ScrollView 。

如果您在 Scrollview 中手动使用文本字段的框架矩形调用 [UIScrollView rollRectToVisible:animated:] ,您可以重新创建此错误。

要解决此问题,您可以子类化 UIScrollView,并更改 [UIScrollView scrollRectToVisible:animated:] 的行为以显示矩形的左侧,或者如果矩形不滚动,则不滚动等于其子类(也是 UITextField)的框架之一。

关于ios - 点击字段时 zoomScaled UIScrollView 定位不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40660793/

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