我的项目需要在运行时向uiscrollview添加和删除uiwebview。意味着,当我们在启用分页时水平滚动(左或右),然后将新视图添加到uiscrollview并遍历到它。
是否可以在uiscrollview中检测左或右滚动?
Plz告诉我最好的解决方案,示例代码或任何教程。
提前致谢
答案 0 :(得分:3)
在这种情况下,我们应该在滚动视图中启用分页。
假设你有大小为320x480的滚动视图,它应该显示10页,每页的大小为320x480,滚动视图的内容大小为320 * 10 x 480。
确定当前页面的最佳方法是使用滚动视图的内容偏移值。 因此,在开始时,当scrollview显示第一页时,其内容偏移将是x = 0,y = 0。
对于第二页x = 320,y = 0。 因此,我们可以通过将contentOffset.x除以page-width来获取当前页面值。 因此,0/320 = 0,表示第1页。 320/320 = 1,表示第2页,依此类推。
因此,如果我们有当前的页面值,我们可以确定滚动视图的移动方向,如下所示:
-(void) scrollViewDidScroll:(UIScrollView *)scrollView{
int currentPageOffset = currentPage * PAGE_WIDTH;
if (self.pageScrollView.contentOffset.x >= currentPageOffset + PAGE_WIDTH) {
// Scroll in right direction. Reached the next page offset.
// Settings for loading the next page.
currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
}else if (self.pageScrollView.contentOffset.x <= currentPageOffset - PAGE_WIDTH) {
// Scroll in left direction. Reached the previous page offset.
// Setting for loading the previous page.
currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
}
}