Save 37% off PRO during our Black Friday Sale! »

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

E58d4a4aae067a3e1ca150bc0b5daef7?s=47 Masashi-Sutou
February 14, 2018

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

E58d4a4aae067a3e1ca150bc0b5daef7?s=128

Masashi-Sutou

February 14, 2018
Tweet

Transcript

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

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

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

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

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

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

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

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

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

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

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

  14. ੍໿ύλʔϯ"

  15. ੍໿ύλʔϯ" ᶃ ᶄ

  16. ੍໿ᶃ͕ແ͍ͱʜ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾ ᶃ w UJUMF-BCFMͱUJNFTUBNQ-BCFMͷߴ͕ܾ͞ΊΒΕͳ͍ ʹͲͷߴ͞Λ༏ઌ͢Ε͹͍͍ͷ͔Θ͔Βͳ͍

  17. ੍໿ᶃ͕༗Δͱʜ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾ ᶃ w UJUMF-BCFMͷߴ͞͸ɺจࣈʹϑΟοτͨ͠ߴ͞Ͱࢉग़͞ ΕΔ w

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

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

    9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾ ᶄ w ্͸ᶄΛద༻ͯ͠΋ໃ६ͤͣɺԼ͸༏ઌ౓  EFGBVMU)JHI΍SFRVJSFE ͳͷͰແࢹ͞Εɺ UJNFTUBNQ-BCFMͷCPUUPN"ODIPS͕༏ઌ͞ΕΔ
  20. ੍໿ᶄͷ༏ઌ౓͕ͳͷ͸ʁ w UJNFTUBNQ-BCFMͷ$POUFOU)VHHJOH1SJPSJUZ ͸EFGBVMU)JHI  ͳͷͰɺͦͷ༏ઌ౓ΑΓ΋௿͘ ͠ͳ͍ͱໃ६͢Δ º ը૾ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ

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

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

    º ը૾ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾
  23. ੍໿ύλʔϯ"ͷͪΐͬͱؾʹͳΔ఺ w λΠτϧͱλΠϜελϯϓͷִ͕ؒจࣈ਺ͷ௕͞ʹΑͬ ͯҧ͏ͱ͖͕͋Δ w λΠϜελϯϓ͕ંΓฦͣ͞ඞͣߦͳΒ͹ɺλΠτϧ ͱಉ͘͡จࣈʹϑΟοτͨ͠ߴ͞Λҡ࣋ͯ͠ཉ͍͠

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

  25. ੍໿ύλʔϯ# ᶃ ᶄ ᶅ

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

    9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾
  27. ᶄͱᶅɿ6*7JFX ͱ༏ઌ౓  ͸ͳͥʁ w λΠτϧͱλΠϜελϯϓ͕จࣈʹϑΟοτͨ͠ߴ͞ʹ ͳΔͨΊɺTUBDL7JFXͷߴ͞Λҡ࣋ͤ͞ΔͨΊʹ 6*7JFX ͕ඞཁ w

    ·ͨTUBDL7JFXͷߴ͕͞ը૾ͷߴ͞ΑΓ΋খ͘͞ͳΒ ͳ͍Α͏ʹᶅͷ੍໿ͱ༏ઌ౓Λ௥Ճ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾ 6*7JFX ͕৳ॖ͢Δ ᶅ
  28. ੍໿ύλʔϯ#ͷϨΠΞ΢τ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λ Πτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্λΠ τϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ

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

    º ը૾ λΠτϧ͸̍จࣈҎ্λΠτϧ͸̍จࣈҎ্ 9999೥ʓʓ݄˚˚೔ʢ˘ʣ º ը૾
  30. ੍໿ύλʔϯ#ͷͪΐͬͱؾʹͳΔ఺ w ੍໿ύλʔϯ"Ͱؾʹͳͬͨ఺͸ύλʔϯ#ͰղফͰ͖ͨ w ϨΠΞ΢τΛௐ੔͢ΔͨΊʹWJFXΛ࡞੒͠ա͍͗ͯΔ w TUBDL7JFXͷ࢖͍ํ͕গ͠มΘͬͯͯϨΠΞ΢τͷΠϝʔδ ͕ͮ͠Β͍

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

  32. ੍໿ύλʔϯ$

  33. ը૾ͷߴ͞ͷ༏ઌ౓͕ͳͷ͸ʁ w ը૾ͷߴ͞ͷ༏ઌ౓͕SFRVJSFE  ͷ৔߹ɺI4UBDL7JFX ֎ ଆ ͱW4UBDL7JFX ಺ଆ ͰͲͪΒͷߴ͞Λ༏ઌ͢Δ΂͖͔ܾΊ

    ΒΕͣɺໃ६͕ੜͯ͡͠·͏ w W4UBDL7JFX ಺ଆ ͷߴ͞ͷܾఆΛ༏ઌͤͯ͞ɺͦͷޙʹը૾ͷ ߴ͞ΛܾΊΔͱɺI4UBDL7JFX ֎ଆ ͸ߴ͕͞େ͖ํʹैͬͯௐ ੔͞ΕΔ
  34. ੍໿ύλʔϯ$ͷͪΐͬͱؾʹͳΔ఺ w ੍໿ύλʔϯ"ͱ#Ͱؾʹͳͬͨ఺Λύλʔϯ$ͰղফͰ͖ͨ w TUBDL7JFXͷੜ੒ίετ͕ύϑΥʔϚϯεʹͲΕ΄ͲӨڹ͋ Δͷ͔͸ະݕূ

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

    σβΠφʔͱΑ͘࿩͠߹ͬͯΑΓྑ͍6*Λߟ͍͖͑ͯ·͠ΐ͏