iOS 8 & iPhone6/6 Plus 開発知見共有会での発表資料です。
ࠇຐज़"VUP-BZPVUͱJ1IPOF1MVT@shobyshoby
View Slide
ࣗݾհpixivͰΞϓϦͭͬͯ͘·͢
ຊ
iOS 7 ࣌
Before
After
Storyboard͕ഁͨ͠ͷͰཧͯ͠AutoLayoutԽͨ͠ৄࡉʮStoryboard + AutoLayoutόουϊϋʯͷεϥΠυhttps://speakerdeck.com/shoby/storyboard-plus-autolayout-bad-knowhow
iOS 8
ʮXcode Beta 6 Ͱ͏·͘ಈ͍ͯΔ͠ɺiOS 8 ָউͬ͢Θʔը໘େ͖͘ͳΔͬͯᷚ͋Δ͚ͲɺAutoLayoutରԠͯ͠Δ͠ɺ༨༟ͬ͠ΐʯ
iPhone 6/6 Plus ൃද
͏Θ͋͋͋͋
ࠇຐज़"VUP-BZPVUͱJ1IPOF1MVT
ը໘αΠζมߋͷରԠ͕ͭΒ͔ͬͨ෦Λڞ༗͠·͢!Α͘ߟ͓͑ͯ͏AutoLayout
֓ཁ
"VUP-BZPVUΞχϝʔγϣϯ"VUP-BZPVU6*4DSPMM7JFX"VUP-BZPVUͷϝϯςφϯείετ
"VUP-BZPVUΞχϝʔγϣϯ
AutoLayoutΞχϝʔγϣϯ"VUP-BZPVUͷ$POTUSBJOUΛ*#0VUMFUͰଓ$POTUSBJOUΛ6*7JFXͷBOJNBUJPO#MPDLதͰมԽͤ͞Δ
Ξχϝʔγϣϯ
Ξχϝʔγϣϯͷίʔυ[UIView animateWithDuration:duration animations:^{self.detailViewTopConstraint.constant = height;[self.view layoutIfNeeded];}];
ϝϦοτίʔυྔ͕ݮΔ୯Ұͷ7JFX͚ͩͳΒγϯϓϧͰ͔Γ͍͢
σϝϦοτґଘؔΛ࣋ͬͨ7JFX͕ෳಉ࣌ʹมԽͯ͠͠·͏ґଘؔͷ͋Δผ7JFXͷϢʔβʔૢ࡞͕ݪҼͰαΠζ͕มΘΔ͜ͱʜBOJNBUJPO#MPDL֎ͰϨΠΞτͷ࠶ߏ͕ߦΘΕΔͱΞχϝʔγϣϯ͠ͳ͍
"VUP-BZPVU6*4DSPMM7JFX
6*4DSPMM7JFXͷϝϦοτɾσϝϦοτ.JYFE"QQSPBDIͱ1VSF"VUP-BZPVU"QQSPBDIԣ෯ґଘίʔυ
UIScrollViewͷϝϦοτɾσϝϦοτ
UIScrollViewAutoLayoutʹ͍ͯͳ͍
ཧ༝͕ແ͚ΕUIPageViewControllerUICollectionViewΛΘΓʹ͏ࣄΛߟ͑ͨํ͕ྑ͍
UIScrollViewͷϝϦοτεΫϩʔϧɺϖʔδϯάɺζʔϜΛ݉Ͷඋ͑ͨଟػೳੑεΫϩʔϧঢ়گʹ߹Θͤͨࡉ͔͍ϑΟʔυόοΫ͕Մೳ
UIScrollViewͷσϝϦοτ6*4DSPMM7JFXͷ֎෦ͱ෦ͷ࠲ඪͷΈ͕ҟͳΔͨΊɺ"VUP-BZPVUʹΑͬͯԿ͕ى͔ͨ͜ཧղͮ͠Β͍෦ͷίϯςϯπΛಈతʹมԽͤ͞Δ͜ͱ͕ଟ͘ɺ੩తʹ੍ΛՃ͢Δ"VUP-BZPVUͱ૬ੑ͕ѱ͍
UIScrollViewͷ༻్ଟ͘ͷใͷҰ෦ΛݟͤΔʢεΫϩʔϧʣจ຺ಉ͚ͩ͡ͲɺͦΕͧΕҧ͏ίϯςϯπΛͭͭݟͤΔʢϖʔδϯάʣͭͷڊେͳίϯςϯπͷҰ෦ΛݟͤΔʢζʔϜʣ
UIScrollViewͷସଟ͘ͷใͷҰ෦ΛݟͤΔʢεΫϩʔϧʣˠ6*5BCMF7JFXɺ6*$PMMFDUJPO7JFXจ຺ಉ͚ͩ͡ͲɺͦΕͧΕҧ͏ίϯςϯπΛͭͭݟͤΔʢϖʔδϯάʣˠ6*1BHF7JFX$POUSPMMFSɺ6*$PMMFDUJPO7JFXͭͷڊେͳίϯςϯπͷҰ෦ΛݟͤΔʢζʔϜʣˠ͖͋ΒΊͯ6*4DSPMM7JFX͓͏ʜ
pixivΞϓϦͷ߹ΠϥετӾཡͷͨΊͷշదੑΛٻͨ݁͠ՌɺUIScrollViewΛ͍ଓ͚͍ͯΔ
Mixed ApproachͱPure Auto LayoutApproach
UIScrollView And Autolayouthttps://developer.apple.com/library/ios/technotes/tn2154/_index.html͍߹Θ͕ͤଟ͔ͬͨͷ͔UIScrollViewˍAutoLayoutͷઐ༻υΩϡϝϯτ͕͋Δ
Mixed ApproachTDSPMM7JFXͷ֎ଆʹ੍TDSPMM7JFXͷDPOUFOU4J[FखಈͰઃఆDPOUFOU7JFXBVUPSFTJ[JOH.BTLDPOUFOU7JFXΛಈతʹՃআͨ͠ΓɺෳͷDPOUFOU7JFXΛѻ͏߹ͬͪ͜
Pure Auto Layout ApproachTDSPMM7JFXͷ֎ଆͱɺதʹ੍TDSPMM7JFXͷDPOUFOU4J[F੍ʹΑΓܾ·ͬͨDPOUFOU7JFXͷαΠζʹͳΔDPOUFOU7JFXͷαΠζɺTDSPMM7JFXͱ֎ଆͱWJFXͷ੍ʴDPOUFOU7JFXͱTDSPMM7JFXͱͷ੍ͷෳ߹݅Ͱܾ·ΔͨΊɺཧղࠔΛۃΊΔ
contentViewscrollViewcontentViewscrollViewMixed ApproachPure Auto LayoutApproach
UIScrollViewͱԣ෯ґଘίʔυ
UIScrollViewͰԣํʹϖʔδϯά͢ΔͱσόΠεͷԣ෯ґଘʹͳΔ
Mixed Approachͷ߹ɺcontentViewੜޙscrollViewͷԣ෯͕มΘΔͱද่͕ࣔΕΔ
21 3 4pixivΞϓϦͷߏ
21 3 4CGFloat offset = 2 * self.scrollView.frame.size.width;self.scrollView.contentOffset = CGPointMake(offset, 0);2ϖʔδʹඈͿͱ͖
21 3 4scrollViewͷԣ෯͕มΘΔCGFloat offset = 2 * self.scrollView.frame.size.width;self.scrollView.contentOffset = CGPointMake(offset, 0);
ԣ෯ґଘίʔυͷղܾࡦWJFXͷԣ෯͕มΘΔʹશͯͷDPOUFOU7JFXͷGSBNFΛܭࢉ͢͠ԣ෯ґଘͷॲཧͷલʹɺMBZPVU*G/FFEFEΛݺͼग़͢
"VUP-BZPVUͷϝϯςφϯείετ
AutoLayoutਓྨʹૣ͗ͨ͢…
ಡΊΔAutoLayoutίʔυଆͰ"VUP-BZPVUΛॻ͘ͱϝϯςφϯεੑ͕ߴ͍όʔδϣϯཧ͕Ͱ͖Δʂଞਓͷ੍͕ಡΊΔʂ
·ͱΊ
৽͍͠Ͱͷಈ࡞֬ೝɺൃද͞Εͨޙ͡Όͳ͍ͱ͍͠"VUP-BZPVUΛͬͯΞχϝʔγϣϯΛ͢Δͱίʔυ؆ܿʹͳΔ͕ɺґଘ͕ଟ͍ͱෳࡶ6*4DSPMM7JFX"VUP-BZPVUͩͱͭΒ͍ίʔυଆͰ੍Λॻ͘ͱϝϯςφϯεͰ͖Δ
http://recruit.pixiv.net/
͓͠·͍