如何在运行时添加和删除UIscrollview中的视图?

发布于 2024-11-19 12:32:44 字数 188 浏览 1 评论 0原文

我的项目需要在运行时向uiscrollview添加和删除一个uiwebview。意味着,当我们在启用分页的情况下水平(向左或向右)滚动它时,一个新视图将添加到 uiscrollview 并遍历它。

是否可以检测 uiscrollview 中的向左或向右滚动?

请告诉我最好的解决方案、示例代码或任何教程。

提前致谢

My project needs to add and delete a uiwebview to uiscrollview at runtime. Means, when we scroll it horizontally (left or right) when paging is enabled, then a new view get added to the uiscrollview and it traverse to it.

Is it possible to detect the left or right scrolling in uiscrollview?

Plz tell me the best possible solution, sample code or any tutorial.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

勿忘初心 2024-11-26 12:32:44

在这种情况下,我们应该在滚动视图中启用分页。

假设您的滚动视图大小为 320x480,它应该显示 10 个页面,其中每个页面的大小为 320x480,使滚动视图的内容大小为 320*10 x 480。

确定当前页面的最佳方法是使用滚动视图的内容偏移值。
所以,一开始,当scrollview显示第一页时,它的内容偏移量将是x=0,y=0。

对于第二页,x=320,y=0。
因此,我们可以通过将 contentOffset.x 除以页面宽度来获取当前页面值。
因此,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;
    }

}

In such cases, we should have paging enabled in our scroll view.

Lets say you have scroll view of size 320x480, and it is supposed to show 10 pages, where size of each page is 320x480, making content size of scroll view as 320*10 x 480.

The best way to determine the current page is by using the content offset value of the scroll view.
So, in the beginning, when scrollview is showing 1st page, its content offset would be x=0, y=0.

For 2nd page x=320, y=0.
Thus we can get the current page value by dividing the contentOffset.x by page-width.
Thus, 0/320 = 0, means 1st page. 320/320 = 1, means 2nd page, and so on.

Thus, if we have current page value with us, we can determine in which direction the scroll view is moving, as follows:

-(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;
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文