$30 off During Our Annual Pro Sale. View Details »

制約の優先度 - UITableViewCellのレイアウトを例に考える

Masashi-Sutou
February 14, 2018

制約の優先度 - UITableViewCellのレイアウトを例に考える

Masashi-Sutou

February 14, 2018
Tweet

More Decks by Masashi-Sutou

Other Decks in Technology

Transcript

  1. ੍໿ͷ༏ઌ౓
    ୈճJ046*࣮૷ษڧձ
    6*5BCMF7JFX$FMMͷϨΠΞ΢τΛྫʹߟ͑Δ

    View Slide

  2. ελσΟϓϥεגࣜձࣾͰJ04ΤϯδχΞΛͯ͠·͢
    ਢ౻ক࢙ʢ!LVSPUZBOOʣ

    View Slide

  3. w ೥݄ʹϦϦʔεɺ೥݄ʹೖࣾ
    w ษڧه࿥ͷ؅ཧͱ4/4Λ߹ΘͤͨΞϓϦ
    w J04͸ɺ໊Ͱ։ൃத
    w TXJGUPCKD
    w J04dJ04αϙʔτ
    w ίʔυͰϨΠΞ΢τ

    View Slide

  4. View Slide

  5. w J04͔Β4FMG4J[JOH͕σϑΥϧτʹͳͬͨ
    w "VUP-BZPVUͰϨΠΞ΢τͰ͖Ε͹ɺηϧͷߴ͕͞ಉ͡Ͱ΋
    มΘͬͯ΋6*5BCMF7JFX"VUPNBUJD%JNFOTJPOͰߴ͞ͷ
    ܭࢉ͸͢΂ͯରԠՄೳ
    w ͨͩ͠ɺJ04dΛαϙʔτ͢Δ৔߹ɺ4UPSZCPBSEͱίʔ
    υͰFTUJNBUFE3PX)FJHIUͷઃఆํ๏͕ҧ͏ͷͰ஫ҙ
    2JJUBͷهࣄʹॻ͍ͨ͜ͱ

    View Slide

  6. ͭ·Γɺ੍໿ʹໃ६͢Δ͜ͱͳ͘
    "VUP-BZPVUͰϨΠΞ΢τͰ͖Ε͹
    ࠷খݶͷίʔυͰ࠶ར༻Մೳͳ$FMM͕࣮૷Ͱ͖Δ

    View Slide

  7. ͔͠͠ɺ੍໿Λໃ६ͤͣ͞ʹ
    ϨΠΞ΢τΛ૊Ήͷ͸؆୯Ͱ͸ͳ͘
    ੍໿ͷ༏ઌ౓ʢ6*-BZPVU1SJPSJUZʣʹΑ͘೰Ή

    View Slide

  8. ࠓ೔͸༏ઌ౓ͷมߋ͕ඞཁͳ
    $FMMͷϨΠΞ΢τʹ͍ͭͯগ͠ߟ͑ͯΈ͍ͨ

    View Slide

  9. ͳ͓ɺ͔͜͜Β͸࣍ͷ/4-BZPVU$POTUSBJOUͷ
    FYUFOTJPOΛ࢖ͬͯίʔυͰઆ໌͠·͢

    View Slide

  10. View Slide

  11. ྫ͑͹ɺ͜Μͳ$FMM͕͋Δͱ͢Δ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  12. $FMMͷ6*ͷϓϩύςΟ

    View Slide

  13. ͲΜͳ੍໿ͷύλʔϯ͕͋ΔͩΖ͏͔

    View Slide

  14. ੍໿ύλʔϯ"

    View Slide

  15. ੍໿ύλʔϯ"


    View Slide

  16. ੍໿ᶃ͕ແ͍ͱʜ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    w UJUMF-BCFMͱUJNFTUBNQ-BCFMͷߴ͕ܾ͞ΊΒΕͳ͍
    ʹͲͷߴ͞Λ༏ઌ͢Ε͹͍͍ͷ͔Θ͔Βͳ͍

    View Slide

  17. ੍໿ᶃ͕༗Δͱʜ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    w UJUMF-BCFMͷߴ͞͸ɺจࣈʹϑΟοτͨ͠ߴ͞Ͱࢉग़͞
    ΕΔ
    w UJNFTUBNQ-BCFMͷߴ͞͸ɺपΓͷ੍໿ʹໃ६͠ͳ͍
    ൣғͰߴ͕͞େ͖͘ͳΔ

    View Slide

  18. ੍໿ᶄ͕ແ͍ͱʜ
    w UJNFTUBNQ-BCFMͷCPUUPN"ODIPS͕༏ઌ͞ΕΔ
    w ը૾ͱ$FMMͷCPUUPNͷִ͕ؒڱ͘ͳΔ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  19. ੍໿ᶄ͕༗Δͱʜ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্
    º
    ը૾
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ

    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    w ্͸ᶄΛద༻ͯ͠΋ໃ६ͤͣɺԼ͸༏ઌ౓
    EFGBVMU)JHI΍SFRVJSFE
    ͳͷͰແࢹ͞Εɺ
    UJNFTUBNQ-BCFMͷCPUUPN"ODIPS͕༏ઌ͞ΕΔ

    View Slide

  20. ੍໿ᶄͷ༏ઌ౓͕ͳͷ͸ʁ
    w UJNFTUBNQ-BCFMͷ$POUFOU)VHHJOH1SJPSJUZ
    ͸EFGBVMU)JHI
    ͳͷͰɺͦͷ༏ઌ౓ΑΓ΋௿͘
    ͠ͳ͍ͱໃ६͢Δ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ


    View Slide

  21. ੍໿ύλʔϯ"ͷϨΠΞ΢τ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  22. ੍໿ύλʔϯ"ͷϨΠΞ΢τ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  23. ੍໿ύλʔϯ"ͷͪΐͬͱؾʹͳΔ఺
    w λΠτϧͱλΠϜελϯϓͷִ͕ؒจࣈ਺ͷ௕͞ʹΑͬ
    ͯҧ͏ͱ͖͕͋Δ
    w λΠϜελϯϓ͕ંΓฦͣ͞ඞͣߦͳΒ͹ɺλΠτϧ
    ͱಉ͘͡จࣈʹϑΟοτͨ͠ߴ͞Λҡ࣋ͯ͠ཉ͍͠

    View Slide

  24. ੍໿ύλʔϯ#
    w 6*4UBDL7JFXΛ࢖ͬͯΈΔ

    View Slide

  25. ੍໿ύλʔϯ#



    View Slide

  26. ᶃɿTUBDL7JFXTQBDJOHͰ͸μϝʁ
    w 6*7JFX
    ͕͋ΔͷͰແବͳ੺͍εϖʔε͕දࣔ͞Εͯ
    ηϧͷߴ͕͞༨෼ʹେ͖͘ͳΔ
    w ੨࿮͕TUBDL7JFXɺ྘ͷQU͸ඞཁ͕ͩɺ੺ͷQU͸
    ඞཁͳ͍
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  27. ᶄͱᶅɿ6*7JFX
    ͱ༏ઌ౓
    ͸ͳͥʁ
    w λΠτϧͱλΠϜελϯϓ͕จࣈʹϑΟοτͨ͠ߴ͞ʹ
    ͳΔͨΊɺTUBDL7JFXͷߴ͞Λҡ࣋ͤ͞ΔͨΊʹ
    6*7JFX
    ͕ඞཁ
    w ·ͨTUBDL7JFXͷߴ͕͞ը૾ͷߴ͞ΑΓ΋খ͘͞ͳΒ
    ͳ͍Α͏ʹᶅͷ੍໿ͱ༏ઌ౓Λ௥Ճ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    6*7JFX
    ͕৳ॖ͢Δ

    View Slide

  28. ੍໿ύλʔϯ#ͷϨΠΞ΢τ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  29. ੍໿ύλʔϯ#ͷϨΠΞ΢τ
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ
    Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ
    τϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾
    λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্
    9999೥ʓʓ݄˚˚೔ʢ˘ʣ
    º
    ը૾

    View Slide

  30. ੍໿ύλʔϯ#ͷͪΐͬͱؾʹͳΔ఺
    w ੍໿ύλʔϯ"Ͱؾʹͳͬͨ఺͸ύλʔϯ#ͰղফͰ͖ͨ
    w ϨΠΞ΢τΛௐ੔͢ΔͨΊʹWJFXΛ࡞੒͠ա͍͗ͯΔ
    w TUBDL7JFXͷ࢖͍ํ͕গ͠มΘͬͯͯϨΠΞ΢τͷΠϝʔδ
    ͕ͮ͠Β͍

    View Slide

  31. ੍໿ύλʔϯ$
    w 6*4UBDL7JFXΛೖΕࢠʹͯ͠࢖ͬͯΈΔ

    View Slide

  32. ੍໿ύλʔϯ$

    View Slide

  33. ը૾ͷߴ͞ͷ༏ઌ౓͕ͳͷ͸ʁ
    w ը૾ͷߴ͞ͷ༏ઌ౓͕SFRVJSFE
    ͷ৔߹ɺI4UBDL7JFX ֎

    ͱW4UBDL7JFX ಺ଆ
    ͰͲͪΒͷߴ͞Λ༏ઌ͢Δ΂͖͔ܾΊ
    ΒΕͣɺໃ६͕ੜͯ͡͠·͏
    w W4UBDL7JFX ಺ଆ
    ͷߴ͞ͷܾఆΛ༏ઌͤͯ͞ɺͦͷޙʹը૾ͷ
    ߴ͞ΛܾΊΔͱɺI4UBDL7JFX ֎ଆ
    ͸ߴ͕͞େ͖ํʹैͬͯௐ
    ੔͞ΕΔ

    View Slide

  34. ੍໿ύλʔϯ$ͷͪΐͬͱؾʹͳΔ఺
    w ੍໿ύλʔϯ"ͱ#Ͱؾʹͳͬͨ఺Λύλʔϯ$ͰղফͰ͖ͨ
    w TUBDL7JFXͷੜ੒ίετ͕ύϑΥʔϚϯεʹͲΕ΄ͲӨڹ͋
    Δͷ͔͸ະݕূ

    View Slide

  35. ·ͱΊ
    w TUPSZCPBSE΍YJCͷ৔߹ɺܯࠂΛΫϦοΫ͢Ε͹ࣗಈमਖ਼͞Ε
    Δ༏ઌ౓Ͱ͕͢ɺίʔυͰҰͭҰͭͳͥඞཁͳͷ͔֬ೝͯ͠Έͨ
    w ίʔυͰ΋ॻ͍ͯΈΔͱɺ"VUP-BZPVUͷཧղ͕ਂ·ͬͯྑ͍
    w ৄ͘͠஌Γ͍ͨਓ͸ɺ"QQMFͷ"VUP-BZPVU(VJEFΛಡΉ
    ͱྑ͍
    w σβΠφʔͱΑ͘࿩͠߹ͬͯΑΓྑ͍6*Λߟ͍͖͑ͯ·͠ΐ͏

    View Slide