Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to NKJPagerViewController

nakajijapan
February 18, 2015

Introduction to NKJPagerViewController

NKJPagerViewController is a PagerTabStrip, which is in Android. It contains an endlessly scrollable UIScrollView.

https://github.com/nakajijapan/NKJPagerViewController

nakajijapan

February 18, 2015
Tweet

More Decks by nakajijapan

Other Decks in Technology

Transcript

  1. N
    K
    J
    potatotips #14
    @nakajijapan
    Introduction to
    NKJPagerViewController

    View Slide

  2. @nakajijapan
    Software Engineer
    GMO PEPABO inc.
    iOS / Web / OSX

    View Slide

  3. J04"OESPJE
    ϋϯυϝΠυɺख࡞Γ࡞඼ͷ௨ൢɾൢചαΠτ
    NJOOF

    View Slide

  4. NKJMovieComposer
    NKJMultiMovieCaptureView
    https://github.com/nakajijapan/NKJMultiMovieCaptureView
    https://github.com/nakajijapan/NKJMovieComposer

    View Slide

  5. ͞Βʹ

    View Slide

  6. NKJPagerViewController

    View Slide

  7. ϖʔδભҠΛΤϯυϨ
    εʹεϫΠϓͰ͖ΔΑ
    ͏ʹ͍ͨ͠!!!!!!!!!!!!!!!

    View Slide

  8. View Slide

  9. ແ͔ͬͨͷͰ
    ϓϥάΠϯΛ
    ࡞ͬͯΈ·ͨ͠

    View Slide

  10. Why?
    • ୯७ʹͦ͏͍͏ϓϥάΠϯ͕ແ͔ͬͨ
    • ICViewPager͕ͪΐͬͱ੝Γͩ͘͞Μɺ΋ͬͱγϯϓϧ
    ʹ͔ͨͬͨ͠
    • ICViewPagerͷ࣮૷͕ݟͨײ͡ΑΖ͘͠ͳ͔ͬͨʁʂ

    View Slide

  11. Why?
    • ୯७ʹͦ͏͍͏ϓϥάΠϯ͕ແ͔ͬͨ
    • ICViewPager͕ͪΐͬͱ੝Γͩ͘͞Μɺ΋ͬͱγϯϓϧ
    ʹ͔ͨͬͨ͠
    • ICViewPagerͷ࣮૷͕ݟͨײ͡ΑΖ͘͠ͳ͔ͬͨʁʂ
    ͦΕΛ౿·͑ͯ

    View Slide

  12. Inspired

    View Slide

  13. Requirement
    • Tab,ViewControllerͰΤϯυϨεʹεϫΠϓͰҠಈ͕
    Ͱ͖Δ

    View Slide

  14. Research
    • ICViewPager
    • https://github.com/iltercengiz/ICViewPager
    • TwitterPaggingViewer
    • https://github.com/xhzengAIB/TwitterPaggingViewer
    • InfinitePagingView
    • https://github.com/caesarcat/InfinitePagingView

    View Slide

  15. Imprements
    • Tab
    • UIScrollView
    • ViewController
    • UIPageViewController

    View Slide

  16. Imprements
    • Tab
    • UIScrollView
    • ViewController
    • UIPageViewController

    View Slide

  17. Point
    ɾTabs, ViewControllers
    ɾ࠷ޙͷϖʔδ͔Β࠷ॳͷϖʔδ΁ͷભҠ
    ɾ࠷ॳͷϖʔδ͔Β࠷ޙͷϖʔδ΁ͷભҠ

    View Slide

  18. Endless Scroll
    ɾViewControllers
    ɾUIPageViewControllerNavigationDirection
    typedef NS_ENUM(NSInteger, UIPageViewControllerNavigationDirection) {
    UIPageViewControllerNavigationDirectionForward,
    UIPageViewControllerNavigationDirectionReverse
    };

    View Slide

  19. Endless Scroll
    • Tabs
    • ࣗલͰ࣮૷
    • Tab,ViewControllerͰSwipeͨ͠ͱ͖
    1
    - (void)scrollWithDirection:(NSInteger)direction
    2 3 4 5 6 7
    $POUFOU0⒎TFU
    4DSFFO

    View Slide

  20. Endless Scroll
    • Tabs
    1 2 3 4 5 6 7

    View Slide

  21. Endless Scroll
    • Tabs
    1 2 3 4 5 6 7
    1 2 3 4 5 6

    View Slide

  22. Endless Scroll
    • Tabs
    1 2 3 4 5 6 7
    1 2 3 4 5 6
    1 2 3 4 5 6
    7

    View Slide

  23. Endless Scroll
    • Tabs
    1 2 3 4 5 6 7
    1 2 3 4 5 6
    1 2 3 4 5 6
    7
    1 2 3 4 5 6
    7

    View Slide

  24. Endless Scroll
    • Tabs
    1 2 3 4 5 6 7
    1 2 3 4 5 6
    1 2 3 4 5 6
    7
    1 2 3 4 5 6
    7
    4DSPMM7JFX಺ʹ͋Δ֤7JFXͷҐஔΛ࠶഑ஔ
    $POUFOU0⒎TFUͷҐஔ΋ҰͭͣΒͯ͠Ҡಈ͍ͯ͠ͳ͍͔ͷ
    Α͏ʹݟ͔͚ͤΔ

    View Slide

  25. Usage
    #pragma mark NKJPagerViewDataSource
    @protocol NKJPagerViewDataSource
    - (NSUInteger)numberOfTabView;
    - (NSInteger)widthOfTabView;
    - (UIView *)viewPager:(NKJPagerViewController *)viewPager
    viewForTabAtIndex:(NSUInteger)index;
    - (UIViewController *)viewPager:(NKJPagerViewController *)viewPager
    contentViewControllerForTabAtIndex:(NSUInteger)index;
    @end
    #pragma mark NKJPagerViewDelegate
    @protocol NKJPagerViewDelegate
    @optional
    - (void)viewPager:(NKJPagerViewController *)viewPager
    didSwitchAtIndex:(NSInteger)index withTabs:(NSArray *)tabs;
    - (void)viewPagerDidAddContentView;
    @end

    View Slide

  26. Usage
    #pragma mark NKJPagerViewDataSource
    @protocol NKJPagerViewDataSource
    - (NSUInteger)numberOfTabView;
    - (NSInteger)widthOfTabView;
    - (UIView *)viewPager:(NKJPagerViewController *)viewPager
    viewForTabAtIndex:(NSUInteger)index;
    - (UIViewController *)viewPager:(NKJPagerViewController *)viewPager
    contentViewControllerForTabAtIndex:(NSUInteger)index;
    @end
    #pragma mark NKJPagerViewDelegate
    @protocol NKJPagerViewDelegate
    @optional
    - (void)viewPager:(NKJPagerViewController *)viewPager
    didSwitchAtIndex:(NSInteger)index withTabs:(NSArray *)tabs;
    - (void)viewPagerDidAddContentView;
    @end
    OVNCFSPGUBCT
    XJEUIGPSFBDIUBC
    WJFXGPSUBC
    WJFX$POUSPMMFS

    View Slide

  27. ·ͱΊ

    View Slide

  28. ·ͱΊ
    • Tab,ViewControllerΛར༻ͯ͠ΤϯυϨεʹεϫΠϓ
    ͰҠಈ͕Ͱ͖ΔϓϥάΠϯ࡞Γ·ͨ͠
    • ͍Ζ͍ΖͳOSSΛࢀߟʹ࣮૷͠·ͨ͠
    • ৭͕ҟͳΔViewͷҠಈͩͱνϥνϥ͢Δ
    • ໰୊ͳ͘minneΞϓϦͰಈ࡞த

    View Slide

  29. ·ͱΊ
    ωʔϛϯά͕ηϯεແ͍ΑͶ

    View Slide

  30. ໊લ͍ͩ͘͞ɻɻɻ

    View Slide

  31. We are hiring!!!
    IUUQQFQBCPDPNSFDSVJUDBSFFSKPCT

    View Slide

  32. Thanks.

    View Slide