How to make infinite scroll view in iPhone?

前端 未结 7 921
无人共我
无人共我 2021-01-01 00:50

I have a scrollview with 5 image views of width 88.

I want the scrollview to scroll to each image view (Not Pagin

相关标签:
7条回答
  • 2021-01-01 01:17

    For anybody else looking for a solution, you can also try this library Infinite Scroll Picker at https://github.com/Seitk/InfiniteScrollPicker/ It's basically drag and drop. I'm using it on a project and it works great.

    0 讨论(0)
  • 2021-01-01 01:21

    This caused me serious problems for a long time so I really feel your pain. I found this control which should solve your problem: http://www.cocoacontrols.com/platforms/ios/controls/infinitescrollview

    I also considered inserting transitions and disabled scroll so it becomes like a slideshow but either way should work.

    0 讨论(0)
  • 2021-01-01 01:27

    First of all, I recommend to use a UITableView so you can maintain the memory usage low. An approach that I had used successfully in a project is the following:

      1. List item

    Duplicate the content of your cells, I mean if you have 5 items in this way:

    | 1 | 2 | 3 | 4 | 5 |

    You should add the same (In a table view with reusable engine that's not a big deal) at the end of the table in order to look like this:

    | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |

      2. modify the scrollViewDidScroll with the following:
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        if (scrollView == _yourScrollView) {
            CGFloat currentOffsetX = scrollView.contentOffset.x;
            CGFloat currentOffSetY = scrollView.contentOffset.y;
            CGFloat contentHeight = scrollView.contentSize.height;
    
            if (currentOffSetY < (contentHeight / 6.0f)) {
                scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY + (contentHeight/2)));
            }
            if (currentOffSetY > ((contentHeight * 4)/ 6.0f)) {
                scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY - (contentHeight/2)));
            }
        }
    }
    

    The code above move the scroll position at top if you almost reach the final of the scrolling; Or if you are almost on the top, moves you to the bottom...

      3. That's it.
    0 讨论(0)
  • 2021-01-01 01:37

    Implemented a simple infinity scroll in this mini project:

    https://github.com/mcmatan/Infinity-tabBar-scroll-view/blob/master/README.md

    0 讨论(0)
  • 2021-01-01 01:40

    You can use iCarousel library for this. https://github.com/nicklockwood/iCarousel

    0 讨论(0)
  • 2021-01-01 01:42

    Here is a short explanation of solution I used to do it.

    Lets say you have counter from 0 - 9, then, when you make transition 9 -> 0, you actually spoof another 0 (call it 0') after 9 (in scrollView), make animated transition to 0' and than make non-animated instant transition to 0 that stands on top of scrollView.

    0 讨论(0)
提交回复
热议问题