为啥 uiscrollview 不显示 contentOffset 更改?

Posted

技术标签:

【中文标题】为啥 uiscrollview 不显示 contentOffset 更改?【英文标题】:Why uiscrollview doesn't make visible the contentOffset change?为什么 uiscrollview 不显示 contentOffset 更改? 【发布时间】:2011-03-24 23:10:44 【问题描述】:

大家好,我对 uiscrollview 有疑问。 当我按下按钮通过 UIView 动画更改 contentOffset scollview 时,我有这样的东西:


NSLog(@"%@\n %f %f", scroll, scroll.contentOffset.x, scroll.contentOffset.y);    
[UIView beginAnimation:@"anima" context:nil];
[UIView setAnimationDuration:0.5];
scroll.contentOffset = CGPointMake(0,index * scroll.frame.size.height;
[UIView commitAnimations];
NSLog(@"%@\n %f %f", scroll, scroll.contentOffset.x, scroll.contentOffset.y);

在这些指令更改之前和之后创建一个日志 cotentOffSet,显然滚动视图是一个现有实例,因此它与 nil 不同。 问题是屏幕不会改变不移动的偏移滚动视图。 我在代码的其他部分和其他滚动视图中做同样的事情,但它工作得很好。 我也试过了:


[scroll setContentOffset:CGPointMake(0, index * currentVerticalScrollView.frame.size.height) animated:YES] ;

但也不会改变! 为什么它不起作用?

【问题讨论】:

你当时确定在主线程吗? 【参考方案1】:

您是否确保最初在滚动时调用setContentSize:,足够大以允许滚动偏移?

如果是这样,它可能需要[scroll setNeedsDisplay] 来试一试!

【讨论】:

以上是关于为啥 uiscrollview 不显示 contentOffset 更改?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用情节提要在 UIScrollView 中不显示内容

为啥我的 UIScrollView 中的 WKWebview 没有显示?

iOS - 更改 UIScrollView 的大小后 ContentOffset 保持不变

为啥我没有得到 UIScrollView 的实际 contentSize?

ios中给uiscrollview添加的全屏子视图为啥宽度只显示屏幕的一半

为啥我在 UIScrollView 中的 UIView 不滚动?