我的项目需要在运行时向uiscrollview添加和删除一个uiwebview。意味着,当我们在启用分页时水平滚动它(向左或向右)时,一个新视图会被添加到 uiscrollview 并遍历它。
是否可以检测 uiscrollview 中的左右滚动?
请告诉我最好的解决方案、示例代码或任何教程。
提前致谢
我的项目需要在运行时向uiscrollview添加和删除一个uiwebview。意味着,当我们在启用分页时水平滚动它(向左或向右)时,一个新视图会被添加到 uiscrollview 并遍历它。
是否可以检测 uiscrollview 中的左右滚动?
请告诉我最好的解决方案、示例代码或任何教程。
提前致谢
在这种情况下,我们应该在滚动视图中启用分页。
假设您有大小为 320x480 的滚动视图,它应该显示 10 个页面,其中每个页面的大小为 320x480,使滚动视图的内容大小为 320*10 x 480。
确定当前页面的最佳方法是使用滚动视图的内容偏移值。所以,一开始,当滚动视图显示第一页时,它的内容偏移量将是 x=0,y=0。
对于第二页 x=320,y=0。因此,我们可以通过将 contentOffset.x 除以 page-width 来获得当前页面值。因此,0/320 = 0,表示第一页。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;
}
}