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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
sakaue
November 08, 2019
Programming
140
0
Share
UICollectionView 基礎編
社内勉強会で使用した資料です。
Tipstar #1 UICollectionViewの基礎
sakaue
November 08, 2019
More Decks by sakaue
See All by sakaue
先端事例「Amazon Chime SDK」を用いた1on1ビデオ通話の構築
tosaka07
0
1.7k
SwiftUIを新規プロダクトで用いた話
tosaka07
2
560
Other Decks in Programming
See All in Programming
Make GenAI Production-Ready with Kubernetes Patterns
bibryam
0
110
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
860
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
200
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.4k
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
180
CDK Deployのための ”反響定位”
watany
4
690
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
350
感情を設計する
ichimichi
5
1.4k
存在論的プログラミング: 時間と存在を記述する
koriym
5
860
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
520
実践CRDT
tamadeveloper
0
450
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Building the Perfect Custom Keyboard
takai
2
730
So, you think you're a good person
axbom
PRO
2
2k
First, design no harm
axbom
PRO
2
1.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
260
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/