我向UIPageControl
添加了UIScrollView
,并希望根据与控件的互动性启用页面更改。
我正在使用currentPage
委托方法更新页面控件的scrollViewDidScroll
属性。不幸的是,我必须在以编程方式滚动时禁用此功能,因为它会使页面控件闪烁。 (我接近这个错误吗?)
由于UIScrollView没有setContentOffset: animated:
完成回调,我需要使用UIView动画模拟其速度。速度是在某处定义还是我应该测量它?
如何确定动画的持续时间,使动画与[(UIScrollView) setContentOffset:x animated:YES]
的速度完全匹配?
答案 0 :(得分:0)
我不确定这是不是你需要的但是你看过scrollRectToVisible吗?
如果您想转到第2页:
[self.scrollView scrollRectToVisible:CGRectMake(320, 0, 320, 480) animated:YES];
我的viewDidScroll看起来像这样,我没有任何闪烁
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
}