UIScrollView setContentOffset:动画:奇怪的行为
Posted
技术标签:
【中文标题】UIScrollView setContentOffset:动画:奇怪的行为【英文标题】:UIScrollView setContentOffset:animated: weird behaviour 【发布时间】:2012-08-11 04:43:43 【问题描述】:我正在使用包含几个文本字段的滚动视图。当文本字段“开始编辑”时,我执行 3 个操作:
我更改了滚动视图内容插图(以便整个视图在键盘上方变得明显)。只有在此内容插图尚未修复时,我才会这样做。
我还更改了滚动指示器插入以匹配 1 中的那个。
最后,我将滚动视图内容偏移更改为某个特定值。
然而,奇怪的事情发生了。一旦我点击文本字段,滚动视图就会动画到大于特定值的内容偏移量,然后立即返回到该特定值。
我怀疑第 1 步和第 2 步都是造成这种情况的原因,所以我排除了它们,一切正常。但是,这让我的部分滚动视图隐藏在键盘下方。
编辑:这是我使用的代码(在文本字段开始编辑时调用):
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;
【问题讨论】:
请发布违规代码。 你把你的 UIView 改成 scrollView 了吗?或者您是否已经分配它并尝试通过以下行访问它:'UIScrollView *scrollView = (UIScrollView *) self.view;' 我的 UIView 实际上是一个滚动视图。这就是我添加这一行的原因。 你找到这个问题的答案了吗?我现在遇到了同样的问题。 【参考方案1】:假设 C_SCROLL_VIEW_CONTENT_INSET_BOTTOM 是您的常量,我认为该值是错误的(太大)。
【讨论】:
以上是关于UIScrollView setContentOffset:动画:奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView里面的UIScrollView:滚动
问题:UIScrollview 弹跳使父 UIScrollview 弹跳
UIScrollView 嵌入其他 UIScrollView