Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UICollectionView 基礎編
Search
sakaue
November 08, 2019
Programming
0
130
UICollectionView 基礎編
社内勉強会で使用した資料です。
Tipstar #1 UICollectionViewの基礎
sakaue
November 08, 2019
Tweet
Share
More Decks by sakaue
See All by sakaue
先端事例「Amazon Chime SDK」を用いた1on1ビデオ通話の構築
tosaka07
0
1.6k
SwiftUIを新規プロダクトで用いた話
tosaka07
2
540
Other Decks in Programming
See All in Programming
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
180
クックパッド検索システム統合/Cookpad Search System Consolidation
giga811
0
140
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
9
2.6k
iOSでQRコード生成奮闘記
ktcryomm
2
130
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
160
Google Cloudとo11yで実現するアプリケーション開発者主体のDB改善
nnaka2992
1
110
PRレビューのお供にDanger
stoticdev
1
240
CloudRun, Spanner に対する負荷試験の反省と オブザーバビリティによるアプローチ
oyasumipants
1
160
自力でTTSモデルを作った話
zgock999
0
120
もう僕は OpenAPI を書きたくない
sgash708
6
1.9k
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
260
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Why Our Code Smells
bkeepers
PRO
336
57k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
KATA
mclloyd
29
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Automating Front-end Workflow
addyosmani
1369
200k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Transcript
6*$PMMFDUJPO7JFX جૅฤ 5JQTUBS/Pࣾษڧձ !UPTBLB
ΞδΣϯμ w 6*$PMMFDUJPO7JFXͱʁ w Έɾίϯηϓτ w ࣮ w %FMFHBUF w
ߋ৽ύϑΥʔϚϯε
6*$PMMFDUJPO7JFX ͱʁ
None
None
"OPCKFDUUIBUNBOBHFTBOPSEFSFE DPMMFDUJPOPGEBUBJUFNTBOEQSFTFOUT UIFNVTJOHDVTUPNJ[BCMFMBZPVUT
"OPCKFDUUIBUNBOBHFTBOPSEFSFE DPMMFDUJPOPGEBUBJUFNTBOEQSFTFOUT UIFNVTJOHDVTUPNJ[BCMFMBZPVUT σʔλΞΠςϜͷॱং͚ΒΕͨίϨΫγϣϯΛཧ͠ɺ ΧελϚΠζՄೳͳϨΠΞτΛ ༻ɾදࣔ͢ΔΦϒδΣΫτɻ
ͭ·ΓϦετදࣔʁ
ͭ·ΓϦετදࣔʁ ͋ͬͯΔ͚Ͳඍົʹҧ͏
-JTUͰͳ͘$PMMFDUJPO 6*5BCMF7JFXॎܕϦετʹಛԽ 6*$PMMFDUJPO7JFXॎԣάϦουͳΜͰ͟͝Ε
)*($PMMFDUJPOT w ඪ४ͷߦ·ͨάϦουϨΠΞτͰेͳ߹ɺࠜ ຊతͳ৽͍͠σβΠϯΛ࡞͠ͳ͍ w ςΩετͷίϨΫγϣϯͷΘΓʹςʔϒϧΛ༻͢Δ͜ ͱΛݕ౼͢Δ w ಈతͳϨΠΞτͷมߋΛ͢ΔࡍؾΛ͚ͭΔ
https://developer.apple.com/design/human-interface-guidelines/ios/views/collections/
Έɾίϯηϓτ
8FCͷϦετදࣔ6*4DSPMM7JFXͱͷҧ͍ දࣔྖҬͷηϧΠϯελϯεΛੜɾϦαΠΫϧΛߦ͏
8FCͷϦετදࣔ6*4DSPMM7JFXͱͷҧ͍ දࣔྖҬͷηϧΠϯελϯεΛੜɾϦαΠΫϧΛߦ͏ গͳ͍ϝϞϦऑ͍$16Ͱ ύϑΥʔϚϯεΑ͘දࣔ͢ΔͨΊʹඞཁ
ίϯηϓτ w -BZPVU w %BUB4PVSDF w %FMFHBUF
6*$PMMFDUJPO7JFX-BZPVU w ίϯςϯπͷஔ w ϨΠΞτؒͰͷΞχϝʔγϣϯ
6*$PMMFDUJPO7JFX'MPX-BZPVU w 6*$PMMFDUJPO7JFX-BZPVUͷαϒΫϥε w 6*$PMMFDUJPO7JFX%FMFHBUF'MPX-BZPVUFYUFOET 6*$PMMFDUJPO7JFX%FMFHBUF w ϥΠϯϕʔεͷϨΠΞτ
6*$PMMFDUJPO7JFX'MPX-BZPVU w 6*$PMMFDUJPO7JFX-BZPVUͷαϒΫϥε w 6*$PMMFDUJPO7JFX%FMFHBUF'MPX-BZPVUFYUFOET 6*$PMMFDUJPO7JFX%FMFHBUF w ϥΠϯϕʔεͷϨΠΞτ
6*$PMMFDUJPO7JFX%BUB4PVSDF w ίϯςϯπͷఏڙ w ηΫγϣϯͱΞΠςϜͷݸఏڙ
6*$PMMFDUJPO7JFX%FMFHBUF w 0QUJPOBM w 6*4DSPMM7JFX%FMFHBUFͷαϒΫϥε w ͍ΖΜͳ੍ޚ w )JHIMJHIUJOH
w 4FMFDUJPO
6.-
4BNQMF
4BNQMF
4BNQMF
4BNQMF ͻͱ·ͣ͜Εॻ͍ͱΔ͚Ͳɺ ࣮ࡍ͜ΕͬͯͳΜͳΜͩʁ
4BNQMF ͻͱ·ͣ͜Εॻ͍ͱΔ͚Ͳɺ ࣮ࡍ͜ΕͬͯͳΜͳΜͩʁ ͜Εॻ͍͚ͨͩͰͳΜͰ ॻ͍ͨϝιου͕࣮ߦ͞ΕΔΜͩʁ
%FMFHBUFҠৡ
%FMFHBUF େࠇఱ ୭Ͱ͍͍͔Β ଧͪग़ͷখṀΛ ୭͔ʹ;ͬͯ΄͍͠ͳ͊ʜʜ
%FMFHBUF େࠇఱ ୭Ͱ͍͍͔Β ଧͪग़ͷখṀΛ ୭͔ʹ;ͬͯ΄͍͠ͳ͊ʜʜ ϫΠ͕ৼΓ·͢Α ೣ
%FMFHBUF େࠇఱ ͋Γ͕ͱ͞Μʈʈ ೣ
%FMFHBUF େࠇఱ αϯΩϡͳʈʈ ཾ ϫΠৼΓ·͢Α
ίʔυʹͯ͠ΈΔ
ίʔυʹͯ͠ΈΔ 1SPUPDPM ఆٛ͞ΕͨϝιουɺϓϩύςΟΛ ࣮͠ͳ͚ΕͳΒͳ͍
ίʔυʹͯ͠ΈΔ େࠇఱখṀ৮ΕΔ୭͔Λ͍࣋ͬͯΔ͔
ίʔυʹͯ͠ΈΔ ΠϯελϯεԽ
ίʔυʹͯ͠ΈΔ ೣΛେࠇఱʹ͠ͱ͘
ίʔυʹͯ͠ΈΔ େࠇఱ͕ৼΕͬͯݴΘΕͨͷͰʜʜ
ίʔυʹͯ͠ΈΔ େࠇఱࣗͷ͍࣋ͬͯΔ খṀৼΕΔͭʹৼΒͤΔ ʢେࠇఱ୭͔ڵຯͳ͍͠ɺΒͳ͍ʣ
ίʔυʹͯ͠ΈΔ ݁Ռɺຕฦͬͯ͘Δ
6*$PMMFDUJPO7JFX%FMFHBUF 6*$PMMFDUJPO7JFX%BUB4PVSDFҰॹ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX ͓͍ɺ6*$PMMFDUJPO7JFX Ϧϩʔυͯ͘͠Ε SFMPBE%BUB
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX Μʔʜʜ̐̌ݸͰ͢ ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX Μʔʜʜ̐̌ݸͰ͢ ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX Μʔʜʜ̐̌ݸͰ͢ ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ ͜ΕΜʂ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX 0,Ͱ͢ɻ ϨΠΞτ։࢝͠·͢Ͷɻ ʜʜݸͷ$FMMͷαΠζ͍ͩ͘͞ɻ ͍ɻ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX Μʔʜʜ̐̌ݸͰ͢ ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ ͜ΕΜʂ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX 0,Ͱ͢ɻ ಡΈࠐΈ·͢Ͷɻ ʜʜݸͷ$FMM͍ͩ͘͞ɻ ͍ɻ
%FMFHBUF 6*7JFX$POUSPMMFS͘Μ 6*$PMMFDUJPO7JFX Μʔʜʜ̐̌ݸͰ͢ ྃղͰ͢ʜʜɻ දࣔ͢ΔΞΠςϜͷԿݸͰ͔͢ʁ ͜ΕΜʂ
ͭ·Γʜʜ 6*$PMMFDUJPO7JFXͷඳըϥΠϑαΠΫϧʹ߹Θͤͯɺ Ҡৡ͍ͯ͠Δ%FMFHBUF͔ΒσʔλΛΒ͏ͨΊɺ ϝιουΛୟ͍͍ͯΔɻ
͜ΕͰ%FMFHBUFᘳʂ
ύϑΥʔϚϯε
4BNQMF
4BNQMF ҉తʹSFMPBE%BUB Λߦ͍ͬͯ·͕͢ʜ ΄Μͱʹશ෦Ϧϩʔυ͍͍ͯ͠ͷ͔ʁ
SFMPBE%BUB ͷੑ࣭ w શ෦ಡΈࠐΈ w ύϑΥʔϚϯεѱ͍ w Ξχϝʔγϣϯ͠ͳ͍
ࠩߋ৽͠·͠ΐ͏ʂ
ࠩߋ৽"1* ·ͱΊͯߋ৽Ͱ͖·͢
ҙ w QFSGPSN#BUDI6QEBUFΫϩʔδϟͷهड़ॱʹؔΘΒ ͣɺEFMFUFˠJOTFSUʹͳΔɻ w EFMFUF*UFNT w ߋ৽͕Δલͷ*OEFY1BUIΛݩʹ߱ॱ w JOTFSU*UFNT
w আ͕࣮ߦ͞Εͨ͋ͱͷ*OEFY1BUIΛݩʹঢॱ
ҙ w %FMFUFͱ*OTFSUΛͦΕͧΕશͯूΊΔ w %FMFUFΛ࠷ॳʹ߱ॱͰߦ͏ w *OTFSU࠷ޙʹঢॱͰߦ͏
Ͱࠩͷܭࢉͬͯ໘ʂ
J04 6*$PMMFDUJPO7JFX%J⒎BCMF%BUB4PVSDF
͋Γ͕ͱ͏͍͟͝·ͨ͠
ࢀߟʹͳͬͨαΠτ https://qiita.com/shiz/items/0e363219a0151d790d03 https://dev.classmethod.jp/smartphone/ios-10-uicollectionview-pre-fetching/ https://www.bignerdranch.com/blog/custom-collection-view-layouts-with-tvos-part-1/