Ios UIScrollView setContentOffset:动画:怪异行为
我使用的是一个包含两个文本字段的滚动视图。当文本字段“开始编辑”时,我执行3个操作:Ios UIScrollView setContentOffset:动画:怪异行为,ios,objective-c,uiscrollview,uitextfield,Ios,Objective C,Uiscrollview,Uitextfield,我使用的是一个包含两个文本字段的滚动视图。当文本字段“开始编辑”时,我执行3个操作: 我更改了滚动视图内容插入(以便整个视图在键盘上方变得清晰可见)。我只会这样做,如果它还没有固定到这个内容插入 我还更改了滚动指示器插图,以匹配1中的一个 最后,我将滚动视图内容偏移更改为某个特定值 然而,一件奇怪的事情发生了。单击文本字段后,滚动视图将设置为大于特定值的内容偏移动画,然后立即返回到该特定值 我怀疑第1步和第2步都是原因,所以我排除了它们,一切正常。然而,这让我的部分滚动视图隐藏在键盘下方 编辑:
假设C_SCROLL\u VIEW\u CONTENT\u INSET\u BOTTOM是常量,我认为该值是错误的(太大)。请发布有问题的代码。您是否已将UIView更改为scrollView??或者您已经分配了它并试图通过以下行访问它:'UIScrollView*scrollView=(UIScrollView*)self.view;'我的UIView实际上是一个滚动视图。这就是我添加这一行的原因。你找到这个问题的答案了吗?我现在也有同样的问题。
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;
}