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
iOS のテキストレイアウトがむずかしい話
Search
Tomoki Kobayashi
December 02, 2016
Programming
2
2k
iOS のテキストレイアウトがむずかしい話
Mobile Act NAGOYA #3 の LT 資料
https://mobileactnagoya.connpass.com/event/44624/
Tomoki Kobayashi
December 02, 2016
Tweet
Share
More Decks by Tomoki Kobayashi
See All by Tomoki Kobayashi
さようならRxSwift こんにちは*****
temoki
1
220
Androidで不安定なPlatform Viewsとの闘い
temoki
0
580
iOSパッケージマネージャー奮闘記 完結編
temoki
2
400
事業譲渡を受けたアプリとの統合で失敗、 そしてユーザーからの評価回復に至るまで
temoki
1
500
Apple Vision Proデベロッパラボに参加してきた
temoki
0
350
年末年始の成果、そして現状の紹介
temoki
0
110
Apple HIGのススメ
temoki
0
210
ChatGPTにSVGでお絵描きさせる
temoki
0
500
Figmaプラグイン開発のススメ
temoki
0
1.2k
Other Decks in Programming
See All in Programming
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
110
テストコード書いてみませんか?
onopon
2
290
バグを見つけた?それAppleに直してもらおう!
uetyo
0
210
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
360
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
110
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
780
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
360
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
320
Compose UIテストを使った統合テスト
hiroaki404
0
120
fs2-io を試してたらバグを見つけて直した話
chencmd
0
280
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
200
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
130
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.1k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Docker and Python
trallard
43
3.2k
KATA
mclloyd
29
14k
Fireside Chat
paigeccino
34
3.1k
Being A Developer After 40
akosma
89
590k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
940
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
171
50k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
2
160
The Pragmatic Product Professional
lauravandoore
32
6.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Transcript
J04ͷ5FYU-BZPVU͕ Ή͔͍ͣ͠ Mobile Act NAGOYA #3
#1 Play Back λΠτϧཾҰ͞ΜͷεϥΠυͷӨڹ
#1 Play Back σβΠϯͷ࣮Ή͔͍ͣ͠ͱ͍͏͓Λ͠·ͨ͠
#1 Play Back σβΠϯͷ࣮Ή͔͍ͣ͠ͱ͍͏͓Λ͠·ͨ͠
#1 Play Back σβΠϯͷ࣮Ή͔͍ͣ͠ͱ͍͏͓Λ͠·ͨ͠
#1 Play Back σβΠϯͷ࣮Ή͔͍ͣ͠ͱ͍͏͓Λ͠·ͨ͠
ΞϓϦσβΠϯݚڀձ w ΞϓϦΤϯδχΞͱσβΠφʔ͕ू·ͬͯ ఆظతʹ࣮ࢪ͍ͯ͠Δࣾษڧձ w σβΠφʔͷҙਤͲ͓Γ࣮͢Δͷ͕ Ή͔͍ͣ͠ͱ͍͏ͷ͕ۙͷͷத৺ w ಛʹʮςΩετϨΠΞτʯ͕ϗοτʂ
ςΩετϨΠΞτ 6*-BCFMͰ͢ΒϨΠΞτ͕͏·͍͔͘ͳ͍ʂ ΤϯδχΞσβΠφʔͷϛεͰͳͦ͞͏ɻ w ςΩετͷஔҐஔ w ςΩετͷจࣈαΠζ w ςΩετͷߦؒ
ͦ͜Ͱ
ݕূΞϓϦ Λͭͬͯ͘Έͨ w 6*-BCFMΛϨΠΞτ w 6*'POU͔ΒಘΒΕΔ ϑΥϯτϝτϦΫεͷՄࢹԽ w /4"UUSJCVUFE4USJOHͷ /41BSBHSBQI4UZMFΛՄࢹԽ
ߦؒߦͷߴ͞ͷࢦఆ w (JU)VCͰެ։͍ͯ͠·͢ IUUQTHJUIVCDPNUFNPLJJ045FYU-BZPVU
ԤจϑΥϯτϝτϦΫε Type abc xAscender Cap Base Mean Descender Base Line
ͯ͢ͷจࣈͷج४ͱͳΔઢ Mean Line খจࣈͷߴ͞ͷج४ͱͳΔઢ Cap Line େจࣈͷߴ͞ͷج४ͱͳΔઢ Ascender Line খจࣈͷCIͳͲ͕࣋ͭΞηϯμʔͱݺΕΔ ਨͳઢͷ্෦ͷج४ͱͳΔઢ Descender Line খจࣈͷQͳͲ͕࣋ͭσΟηϯμʔͱݺΕΔ ਨͳઢͷԼ෦ͷج४ͱͳΔઢ ෳͷج४ઢͰߏ͞ΕΔ
ԤจϑΥϯτϝτϦΫε .lineHeight ςΩετ̍ߦͷߴ͞ .xHeight #BTFϥΠϯ͔Β.FBOϥΠϯ·Ͱͷߴ͞ .capHeight #BTFϥΠϯ͔Β$BQϥΠϯ·Ͱͷߴ͞ .ascender #BTFϥΠϯ͔ΒτοϓͷΦϑηοτ .descender
#BTFϥΠϯ͔ΒϘτϜͷΦϑηοτ ෛ 6*'POUͷϓϩύςΟͰѲͰ͖Δ Type abc x .lineHeight .ascender .descender .capHeight .xHeight
จϑΥϯτϝτϦΫε ʢࢀߟใʣจϑΥϯτͷϘσΟͱࣈ໘ Ѫ w จϑΥϯτͷจࣈͯ͢ಉ͡αΠζͷ ਖ਼ํܗྖҬʢʹϘσΟʣʹऩΊΒΕΔɻ w จࣈͦͷͷɺϘσΟΑΓҰճΓ খ͍͞ʮࣈ໘ʯͷதʹσβΠϯ͞ΕΔɻ ͜ΕɺจࣈΛฒͨͱ͖ʹจࣈؒʹ
దͳۭؒΛ࡞ΔͨΊɻ w 6*'POU͔Β͜ΕΒͷใಘΒΕͳ͍ ϘσΟ ࣈ໘ ͮ͡Β
Ή͔͍ͣ͠ࣄྫΛݕূ
ਨํͷஔ͕Ή͔͍ͣ͠ ࣈ໘ʹର͢Δ༨നͷӨڹ σβΠφʔ͕ ࢦఆ͢ΔϚʔδϯΛ ༨ന ༨ന ΤϯδχΞ͕ ࣮͢Δͱ͜͏ͳΔ ʢϑΥϯτʹґଘʣ
จࣈαΠζࢦఆ͕Ή͔͍ͣ͠ γεςϜϑΥϯτ߹ϑΥϯτͰ͢ ʢԤจ͕αϯϑϥϯγείɺจ͕ώϥΪϊ֯ΰγοΫʣ σβΠφʔγεςϜϑΥϯτΛҙࣝͯ͠ ώϥΪϊ֯ΰγοΫͰσβΠϯ͢Δ ΤϯδχΞγεςϜϑΥϯτΛࢦఆ͢Δ αΠζͲͪΒQUͳͷʹγεςϜϑΥϯτएׯখ͍͞ʂ
ߦؒͷࢦఆ͕Ή͔͍ͣ͠ʁ ߦؒ/41BSBHSBQI4UZMFͷMJOF4QBDJOHͰࢦఆ͢Δ ߦؒ ߦؒ
ߦؒͷࢦఆ͕Ή͔͍ͣ͠ʂ γεςϜϑΥϯτͰຊޠ͕ࠞ͡ΔͱߦͰߦ͕ؒ༩͞ΕΔ ߦؒ ΞϧϑΝϕοτͷΈ ຊޠΛؚΉ
ߦؒͷࢦఆ͕Ή͔͍ͣ͠ʂ γεςϜϑΥϯτͰͳ͘ώϥΪϊ֯ΰγοΫΛࢦఆ͢Δͱ ߦͷ߹Ͱߦؒ༩͞Εͳ͍☺ ώϥΪϊ֯ΰγοΫ γεςϜϑΥϯτ
ߦؒͷࢦఆ͕Ή͔͍ͣ͠❗ ώϥΪϊ֯ΰγοΫΛࢦఆ͢Δͱจࣈ͕ΕΔ$ ʢσΟηϯμʔෆɻ͓ͦΒ͘จϑΥϯτͱͯ͠ͷϘσΟΛ༏ઌʣ ώϥΪϊ֯ΰγοΫ QͷԼ͕Ε͍ͯΔ
·ͱΊ w J04ͷςΩετϨΠΞτΉ͔͍ͣ͠ w ͦͯ͠γϯϓϧͳղܾࡦ͕ݟ͔ͭΒͳ͍ w QYʹͩ͜ΘΔͱ͍͏ͷΉ͔͍ͣ͠
Ή͔͍ͣ͠
ࢀߟจݙ w .BTBTIJ0OPʮJ04ͷϑΥϯτͷʯ"-JBJTPO#-0( IUUQBLJTVUFDPNJPTIUNM w ,JTIJLBXB,BUTVNJʮ.BTUFSJOH5FYU,JUʯ IUUQTTQFBLFSEFDLDPNLJTIJLBXBLBUTVNJNBTUFSJOHUFYULJU w ํՆࢠʮ6*,JUపఈղઆʯΠϯϓϨεϒοΫε w
େ࡚ت࣏ʮλΠϙάϥϑΟͷجຊϧʔϧʯ4#$SFBUJWF