Bou*_*Bob 43 iphone uiscrollview animated
这很奇怪,我想知道是否有人有任何想法?
我正在尝试滚动UIScrollView以响应iPad上的按钮按下.
如果我做:
CGPoint currentOff = scrollView.contentOffset;
currentOff.x+=240;
[scrollView setContentOffset:currentOff animated: NO];
Run Code Online (Sandbox Code Playgroud)
滚动视图按预期跳转到所需位置,但我希望它滚动.但是,当我这样做时:
CGPoint currentOff = scrollView.contentOffset;
currentOff.x+=240;
[scrollView setContentOffset:currentOff animated: YES];
Run Code Online (Sandbox Code Playgroud)
然后它什么都没做!我有另一个滚动视图,它正常工作并按setContentOffset:YES
预期响应,所以我很困惑.关于为什么滚动可能不会发生的任何想法都是最受欢迎的!
此外,使用时- (void)scrollViewDidScroll:(UIScrollView *)sender
根本没有收到任何东西,animated:YES
但在animated:NO
使用时会被调用!
Phi*_*rin 80
我也发生了这种情况,并最终做了这个解决方法:
[UIView animateWithDuration:.25 animations:^{
self.scrollView.contentOffset = ...;
}];
Run Code Online (Sandbox Code Playgroud)
从个人经验来看,当setContentOffset:在动画有机会运行之前被多次调用时会出现此问题.
我没有完全追查这个问题,但我相信问题是这样的:
setContentOffset:调用animated来设置新的偏移值.setContentOffset:随后使用相同的参数调用,这将取消动画.它还注意到新参数与旧参数相同,因此即使动画尚未运行,也不需要做任何事情.
上面的解决方案以某种方式打破了这个循环,但也许一个较少的解决方案是在代码中放置断点并消除多个调用.
归档时间: |
|
查看次数: |
30614 次 |
最近记录: |