ios - UIScrollView setContentOffset :animated: weird behaviour

标签 ios objective-c uiscrollview uitextfield

我正在使用包含几个文本字段的 ScrollView 。当文本字段“开始编辑”时,我执行 3 个操作:

  1. 我更改了 ScrollView 内容插图(以便整个 View 在键盘上方变得清晰可见)。只有在该内容插图尚未修复时,我才会这样做。

  2. 我还更改了滚动指示器插图以匹配 1 中的一个。

  3. 最后,我将 ScrollView 内容偏移更改为某个特定值。

然而,奇怪的事情发生了。一旦我点击文本字段, ScrollView 就会动画到大于特定值的内容偏移量,然后立即返回到该特定值。

我怀疑第 1 步和第 2 步都是原因,所以我排除了它们,一切正常。但是,这给我留下了隐藏在键盘下方的 ScrollView 的一部分。

编辑:这是我使用的代码(在文本字段开始编辑时调用):

        UIScrollView *scrollView = (UIScrollView *) self.view;

        if (scrollView.contentInset.bottom != C_SCROLL_VIEW_CONTENT_INSET_BOTTOM) {
            [scrollView setContentInset:UIEdgeInsetsMake(C_ORIGIN_ZERO,
                                                         C_ORIGIN_ZERO,
                                                         C_SCROLL_VIEW_CONTENT_INSET_BOTTOM,
                                                         C_ORIGIN_ZERO)];
            [scrollView setScrollIndicatorInsets:UIEdgeInsetsMake(C_ORIGIN_ZERO,
                                                                  C_ORIGIN_ZERO,
                                                                  C_SCROLL_VIEW_CONTENT_INSET_BOTTOM,
                                                                  C_ORIGIN_ZERO)];
        }

        if (textField.tag == C_TAG_BUTTON) {
            [scrollView setContentOffset:CGPointMake(C_ORIGIN_ZERO, C_ORIGIN_SHIFT_SCROLL_VIEW_FOR_CURRENT_Y)
                                animated:YES];
            return;
        }

最佳答案

假设 C_SCROLL_VIEW_CONTENT_INSET_BOTTOM 是您的常量,我认为该值是错误的(太大)。

关于ios - UIScrollView setContentOffset :animated: weird behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911967/

相关文章:

javascript - iOS Safari 显示来自 .toLocaleString() 和 .slice() 的不同数据

iOS 只旋转 subview Controller 之一

iOS - 如何从容器 View 访问变量并将其传递回 View Controller

ios - iPhone 应用程序的 strip 符号

ios - 如何限制 UITextField 中的字符

iphone - 如何使多个 UITableViewCells 相互通信/交互?

iphone - UIScrollView滚动检测

ios - 将 .dylib 或 .la 文件导入 iOS 项目

objective-c - 在 iOS 中通过 UIImagePickerController 加载 UIActivityIndi​​cator

IOS Custom Segmented Pager - 使指示器滚动而不是标签