Slide 1

Slide 1 text

6*ϥΠϒϥϦ͸ Ͳ͏ઃܭ͞ΕΔ΂͖͔ ,B[VIJSP)":"4)* J04%$3FKFDU$POGFSFODF%BZT

Slide 2

Slide 2 text

ࣗݾ঺հ w ྛ࿨߂ w 5XJUUFSɿLB[VIJSP w HJUIVCɿLB[VIJSP w RJJUBɿLB[VIJSP w :BIPP+BQBO$PSQ w J04ΞϓϦΤϯδχΞ w J04ΞϓϦࠇଳ

Slide 3

Slide 3 text

ΞδΣϯμ w 6*ϥΠϒϥϦΛར༻ͯ͠։ൃ͢ΔதͰ௚໘ͨ͠ɺΫϥεͷ ࠶ར༻ੑʹର͢Δ՝୊ͷ঺հ w ৽نʹ։ൃͨ͠ϥΠϒϥϦͰͲͷΑ͏ʹ՝୊Λղܾ͔ͨ͠ ղઆ w 6*ͷڞ௨ΫϥεΛઃܭ͢ΔࡍͷϙΠϯτΛ੔ཧ

Slide 4

Slide 4 text

J04ΞϓϦͷ6*ϥΠϒϥϦ w ͜͜Ͱ͸ɺ6*,JUͷΫϥεΛܧ ঝͨ͠ܗͰఏڙ͞ΕΔɺ࠶ར༻ ՄೳͳΫϥεΛѻ͏ w $PSF"OJNBUJPO $PSF(SBQIJDT $PSF5FYUͳͲ ͷ௿ϨΠϠϑϨʔϜϫʔΫ͸ ϑΥʔΧε͔Β֎͢ IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUEPDVNFOUBUJPO$PDPB$PODFQUVBM$PSF"OJNBUJPO@HVJEF*OUSPEVDUJPO*OUSPEVDUJPOIUNM

Slide 5

Slide 5 text

͋ΔϓϩμΫτͷ࿩

Slide 6

Slide 6 text

͋ΔϓϩμΫτͰϖʔδϯά6* ͷϥΠϒϥϦΛ࢖ͬͯ։ൃ w 4NBSU/FXT΍NFSDBSJɺ :BIPPχϡʔεͰ࠾༻͞Εͯ ͍ΔΑ͏ͳɺϖʔδϯάͱԣε Ϋϩʔϧϝχϡʔͷ૊Έ߹Θͤ

Slide 7

Slide 7 text

ͦͷϥΠϒϥϦͰ͸ɺUJUMF͕ઃఆ͞Εͨ7$Λ"SSBZͰ ౉͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢ let ary: [UIViewController] = [ { $0.title = "Page1" return $0 }(UIViewController()), { $0.title = "Page2” return $0 }(UIViewController()), { $0.title = "Page3" return $0 }(UIViewController()) ] pagingViewController.childViewControllers = ary

Slide 8

Slide 8 text

ͦͷϥΠϒϥϦͰ͸ɺUJUMF͕ઃఆ͞Εͨ7$Λ"SSBZͰ ౉͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢ let ary: [UIViewController] = [ { $0.title = "Page1" return $0 }(UIViewController()), { $0.title = "Page2” return $0 }(UIViewController()), { $0.title = "Page3" return $0 }(UIViewController()) ] pagingViewController.childViewControllers = ary ϝχϡʔ͕͋Δ

Slide 9

Slide 9 text

ͦͷϥΠϒϥϦͰ͸ɺUJUMF͕ઃఆ͞Εͨ7$Λ"SSBZͰ ౉͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢ let ary: [UIViewController] = [ { $0.title = "Page1" return $0 }(UIViewController()), { $0.title = "Page2” return $0 }(UIViewController()), { $0.title = "Page3" return $0 }(UIViewController()) ] pagingViewController.childViewControllers = ary ϖʔδϯάՄೳͳ ίϯςϯπྖҬ͕͋Δ

Slide 10

Slide 10 text

ελΠϧ΋ύϥϝʔλͰ౉͢͜ͱ͕Մೳ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 11

Slide 11 text

ॳظͷγϯϓϧͳཁ݅Λຬ͍ͨͯͨ͠ w ϖʔδϯάͰ͖Δίϯςϯπ w εΫϩʔϧ͞ΕΔϝχϡʔ w ϝχϡʔʹ͸λΠτϧ͕දࣔ͞Ε͍ͯ Δ w ݱࡏͷϖʔδҐஔͷϝχϡʔ͕ڧௐ͞ Εͯɺݱࡏ஍͕Θ͔ΔΑ͏ʹͳ͍ͬͯ Δ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 12

Slide 12 text

͔͠͠ཁ͕݅গͣͭ͠ෳࡶԽ͍͖ͯ͠ɺ ࠾༻ͨ͠ϥΠϒϥϦͰ͸ରԠ͖͠Εͳ͘ͳΔ

Slide 13

Slide 13 text

ϓϩμΫτͷ੒௕ʹ൐ͬͯ6*͕ࡉ෼Խ͞Εɺ ͜͏͍ͬͨ͜ͱΛٻΊΒΕΔΑ͏ʹͳ͖ͬͯͨ w ྫ͑͹ w ͋Δը໘Ͱ͸ϝχϡʔͷಛ ఆͷཁૉͷ্ʹαϒλΠτ ϧΛ෇͚͍ͨ w ͋Δը໘Ͱ͸ίϯςϯπͱ ϝχϡʔͷྖҬؒ΁Ϙλϯ Λฒ΂͍ͨ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 14

Slide 14 text

ϓϩμΫτͷ੒௕ʹ൐ͬͯ6*͕ࡉ෼Խ͞Εɺ ͜͏͍ͬͨ͜ͱΛٻΊΒΕΔΑ͏ʹͳ͖ͬͯͨ w ྫ͑͹ w ͋Δը໘Ͱ͸ϝχϡʔͷಛ ఆͷཁૉͷ্ʹαϒλΠτ ϧΛ෇͚͍ͨ w ͋Δը໘Ͱ͸ίϯςϯπͱ ϝχϡʔͷྖҬؒ΁Ϙλϯ Λฒ΂͍ͨ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 15

Slide 15 text

ར༻͍ͯͨ͠ϥΠϒϥϦͰ͸ ཁ݅Λຬͨͤͳ͘ͳͬͯ͘Δ

Slide 16

Slide 16 text

৭ΜͳέʔεͰڞ௨Ͱ࢖ΘΕΔ6*͸ ͲͷΑ͏ʹ࡞ΒΕΔ΂͖ͩΖ͏͔

Slide 17

Slide 17 text

͜ͷͭΛߟྀͯ͠ઃܭ͞Ε Δͱྑ͍ͷͰ͸ͳ͍͔ͱࢥ͏ ΠϯλϥΫγϣϯͷΈΛ੹຿ͱͯ࣋ͭ͠Ϋϥεʹ͢Δ ϨΠΞ΢τมߋʹରͯ͠͸ग़དྷΔݶΓࣗ༝౓͕ߴ͍ঢ়ଶʹ ͢Δ ಺෦ίϯϙʔωϯτͷબ୒ɾ഑ஔ͸ࣗ༝Ͱ͋Δඞཁ͕͋Δ BEE4VCWJFX @ ΍BEE$IJME7JFX$POUSPMMFS @ ʹΑΔί ϯϙδγϣϯͰར༻Ͱ͖ΔΑ͏ʹ͢Δ

Slide 18

Slide 18 text

Ҏ্ͷߟ͑ํʹج͖ͮ ৽ن։ൃͨ͠ϥΠϒϥϦ

Slide 19

Slide 19 text

IUUQTHJUIVCDPNLB[VIJSP1BHJOH,JU 1BHJOH,JU

Slide 20

Slide 20 text

1BHJOH,JUͷಛ௃ w ΠϯλϥΫγϣϯ෦෼ΛϥΠϒ ϥϦͰఏڙ w ϝχϡʔྖҬͱίϯςϯπྖҬ ͕࿈ಈͯ͠ಈ͘

Slide 21

Slide 21 text

1BHJOH,JUͷಛ௃ w ϨΠΞ΢τ͸ࣗ༝ʹܾΊΒΕΔ w ϝχϡʔͱίϯςϯπͷؒ ʹ7JFXΛڬΉ w ϝχϡʔͱίϯςϯπΛฒ ΂ସ͑Δ

Slide 22

Slide 22 text

1BHJOH,JUͷಛ௃ w த਎ͷ7JFXίϯϙʔωϯτ͸ ΞϓϦͰ༻ҙ͢Δ w ϝχϡʔͷσβΠϯΛม͑Δ w ϝχϡʔʹ6*-BCFMΛͭฒ ΂ͨΓɺ6**NBHF7JFXΛஔ ͍ͨΓ͢Δ

Slide 23

Slide 23 text

࢖͍ํ

Slide 24

Slide 24 text

w ҎԼͷ̎ͭͷ7JFX$POUSPMMFSΛ 4UPSZCPBSE্Ͱ$POUBJOFS7JFX Λ࢖ͬͯϨΠΞ΢τ͢Δ w 1BHJOH.FOV7JFX$POUSPMMFS w 1BHJOH$POUFOU7JFX$POUSPMMFS 1BHJOH.FOV7JFX$POUSPMMFS 1BHJOH$POUFOU7JFX$POUSPMMFS

Slide 25

Slide 25 text

w 4FHVFͰઃఆͨ͠௨ৗͷ$IJME 7JFX$POUSPMMFSͱಉ͡Α͏ʹɺ ίʔυ্Ͱऔಘ͢Δ class ViewController: UIViewController { var menuViewController: PagingMenuViewController! var contentViewController: PagingContentViewController! // … // ... override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let vc = segue.destination as? PagingMenuViewController { menuViewController = vc } else if let vc = segue.destination as? PagingContentViewController { contentViewController = vc } } } QSFQBSF GPSTFOEFS ͰTUPSZCPBSEͰઃఆ͠ ͨ7$ΛϓϩύςΟ΁ೖΕΔ

Slide 26

Slide 26 text

w ϝχϡʔͷཁૉʹ૬౰͢Δ7JFX ͸ɺ1BHJOH.FOV$FMMΛܧঝ͠ ͯΞϓϦέʔγϣϯଆͰ༻ҙ͢ Δ w ΞϓϦ಺Ͱͷڞ௨ͷελΠϧ΍ ը໘ຖͷݸผͷελΠϧͰ౎౓ ༻ҙ͢Δ ͜ͷதͷͦΕͧΕͷཁૉʹ ૬౰

Slide 27

Slide 27 text

w ಉ༷ʹϖʔδϯάதͷݱࡏҐஔ Λද͢Πϯδέʔλ΋ 1BHJOH'PDVT7JFXΛܧঝͯ͠ ΞϓϦଆͰ༻ҙ͢Δ w ΞϓϦ಺Ͱͷڞ௨ͷελΠϧ΍ ը໘ຖͷݸผͷελΠϧͰ౎౓ ༻ҙ͢Δ ݱࡏදࣔ͞Ε͍ͯΔҐஔΛ ϝχϡʔ্Ͱදͨ͢ΊͷΠ ϯδέʔλ

Slide 28

Slide 28 text

var data: (menuTitle: String, vc: UIViewController) = [ (menuTitle: "test1", vc: UIViewController()), (menuTitle: "test2", vc: UIViewController()), (menuTitle: "test3", vc: UIViewController()) ] w ը໘ʹද͍ࣔͤͨ͞೚ҙͷσʔ λΛ༻ҙ͢Δ w ϝχϡʔ͸λΠτϧจࣈྻ ͷΈ w ίϯςϯπ͸ۭͷ7$Λ༻ҙ ͍ͯ͠Δ

Slide 29

Slide 29 text

w ϝχϡʔͷදࣔΛ࣮૷͢Δ w ༻ҙͨ͠σʔλΛ%BUB4PVSDF ܦ༝ͰɺඞཁͳλΠϛϯάͰ౎ ౓ฦ͢ w 5BCMF7JFX΍$PMMFDUJPO7JFXͱ ಉ༷ͳ࢓૊ΈͰҎԼΛ౉͢ w σʔλ਺ w ηϧͷ෯ w σʔλΛόΠϯυͨ͠ηϧ // ϝχʔ෦෼ͷDataSource extension ViewController: PagingMenuViewControllerDataSource { func numberOfItemForMenuViewController( viewController: PagingMenuViewController) -> Int { return data.count } func menuViewController(viewController: PagingMenuViewController, widthForItemAt index: Int) -> CGFloat { return 100 } func menuViewController(viewController: PagingMenuViewController, cellForItemAt index: Int) -> PagingMenuViewCell { let cell = viewController.dequeueReusableCell(withReuseIdentifier: "MenuCell", for: index) as! MenuCell cell.titleLabel.text = data[index].menuTitle return cell } }

Slide 30

Slide 30 text

w ίϯςϯπͷදࣔΛ࣮૷͢Δ w ༻ҙͨ͠σʔλΛ%BUB4PVSDF ܦ༝ͰɺඞཁͳλΠϛϯάͰ ౎౓ฦ͢ w 5BCMF7JFX΍$PMMFDUJPO7JFX ͱಉ༷ͳ࢓૊Έ w σʔλ਺ w σʔλΛόΠϯυͨ͠ 7JFX$POUSPMMFS // ίϯςϯπ෦෼ͷDataSource extension ViewController: PagingContentViewControllerDataSource { func numberOfItemForContentViewController( ɹ viewController: PagingContentViewController) -> Int { return data.count } func contentViewController(viewController: PagingContentViewController, viewControllerAt index: Int) -> UIViewController { return data[index].vc } }

Slide 31

Slide 31 text

w ৼΔ෣͍ͷΈΛ࢓༷ͱͯ࣋ͭ͠ҎԼͷΫ ϥεΛίϯϙδγϣϯ͢Δ w 1BHJOH.FOV7JFX$POUSPMMFS w 1BHJOH$POUFOU7JFX$POUSPMMFS w ҎԼͷཁૉ͸ΞϓϦଆͰ༻ҙ͢Δ w ϨΠΞ΢τ w த਎ʹԿΛදࣔͤ͞Δ͔

Slide 32

Slide 32 text

ྫ͑͹ͲͷΑ͏ͳཁ݅΁
 ରԠͰ͖ΔΑ͏ʹͳ͔ͬͨ

Slide 33

Slide 33 text

ྫ͑͹ͲͷΑ͏ͳཁ݅΁
 ରԠͰ͖ΔΑ͏ʹͳ͔ͬͨ w ϨΠΞ΢τΛมߋͯ͠ϝχϡʔ ͱίϯςϯπͷؒʹΧςΰϦબ ୒ϘλϯΛݻఆͯ͠ฒ΂͍ͨ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 34

Slide 34 text

ྫ͑͹ͲͷΑ͏ͳཁ݅΁
 ରԠͰ͖ΔΑ͏ʹͳ͔ͬͨ w ϝχϡʔͷҰ෦ཁૉʹ͸্෦ʹ ࠓ೔ɾ໌೔ͱ͍ͬͨ஫ऍΛ͚ͭ ͍ͨ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 35

Slide 35 text

ྫ͑͹ͲͷΑ͏ͳཁ݅΁
 ରԠͰ͖ΔΑ͏ʹͳ͔ͬͨ w ಈըͷϓϨΠϠʔ͕͋ͬͯɺͦ ͷ෦෼͸ϝχϡʔͱࣅͨΑ͏ͳ ײ͡ͷಈ͖ͷ6*Λ࡞ͬͯཉ͍͠ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱ͸ҧ͍·͢

Slide 36

Slide 36 text

ҎԼͷ৚݅Λҙࣝ͢Δ͜ͱͰɺ࠶ར༻ੑ Λҡ࣋ͭͭ͠Ϋϥεͷڞ௨Խ͕Ͱ͖ͨ ΠϯλϥΫγϣϯͷΈΛ੹຿ͱͯ࣋ͭ͠Ϋϥεʹ͢Δ ϨΠΞ΢τมߋʹରͯ͠͸ग़དྷΔݶΓࣗ༝౓͕ߴ͍ঢ়ଶʹ ͢Δ ಺෦ίϯϙʔωϯτͷબ୒ɾ഑ஔ͸ࣗ༝Ͱ͋Δඞཁ͕͋Δ BEE4VCWJFX @ ΍BEE$IJME7JFX$POUSPMMFS @ ʹΑΔί ϯϙδγϣϯͰར༻Ͱ͖ΔΑ͏ʹ͢Δ

Slide 37

Slide 37 text

·ͱΊ w ڞ௨ΫϥεΛ։ൃ͢Δ࣌͸࠶ར༻ੑͷ؍఺Ͱ੹຿Λҙࣝ͢Δɻ࣮૷ͷ γϯϓϧ͞ͱॊೈੑ͸௨ৗτϨʔυΦϑͳͷͰόϥϯεΛݟۃΊΔ w J04Ͱ6*,JUͷϨΠϠʹڞ௨ΫϥεΛߏங͢Δ৔߹͸ɺΠϯλϥΫγϣ ϯͷΈΛنఆ͢Δͷ͕ྑ͍ w ϨΠΞ΢τ͸ɺΠϯλϥΫγϣϯͷ࢓༷Λյ͞ͳ͍ఔ౓Ͱग़དྷΔݶΓ ࣗ༝౓͕ߴ͍ͱྑ͍ w ಺෦ίϯϙʔωϯτͷ഑ஔ΍ͦͷελΠϧ͸ΞϓϦʹ·͔ͤͯؔ༩͠ ͳ͍ͷ͕ྑ͍

Slide 38

Slide 38 text

ࢀߟࢿྉ w 6*,JUc"QQMF%FWFMPQFS%PDVNFOUBUJPO w IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU w $PODFQUTJO0CKFDUJWF$1SPHSBNNJOH w IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUEPDVNFOUBUJPO(FOFSBM$PODFQUVBM $PDPB&ODZDMPQFEJB*OUSPEVDUJPO w LB[VIJSP1BHJOH,JU w IUUQTHJUIVCDPNLB[VIJSP1BHJOH,JU w ϝϧΧϦεϚϗͰ͔ΜͨΜϑϦϚΞϓϦ w IUUQTXXXNFSDBSJDPNKQ w :BIPPχϡʔεެࣜΞϓϦ:BIPPχϡʔε w IUUQTOFXTZBIPPDPKQQSPNPBQQZKOFXT w 4NBSU/FXT w IUUQTXXXTNBSUOFXTDPNKB