Skip to content

Latest commit

ย 

History

History
67 lines (38 loc) ยท 4.32 KB

hugging,resistance.md

File metadata and controls

67 lines (38 loc) ยท 4.32 KB

hugging, resistance์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค.

์ฐธ๊ณ ํ•œ ์ข‹์€ ๊ธ€

Answer

์˜คํ† ๋ ˆ์ด์•„์›ƒ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์œผ๋กœ์„œ, Content Priority ์†์„ฑ์— hugging, resistance ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์–˜๋„ค๋Š” Priority๋ฅผ ์„ค์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๋Š” IntrinsicContentSize์„ ์ด์šฉํ•ด์„œ ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ์žก๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

image

Size Inspector ํ•˜๋‹จ๋ถ€์— ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด์žˆ๋‹ค.

  • intrinsicContentSize?

    "์ปจํ…์ธ  ๊ณ ์œ  ์‚ฌ์ด์ฆˆ"์ด๋‹ค. UILabel, UIButton, UIImageView๋“ฑ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ, ์ง์ ‘ ์‚ฌ์ด์ฆˆ๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ €๋งˆ๋‹ค์˜ ํฌ๊ธฐ๊ฐ€ ์ง€์ •๋˜์–ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด ํ”„๋กœํผํ‹ฐ ๋•Œ๋ฌธ์ด๋‹ค. Label์€ text์— ๋งž๊ฒŒ ์ด ๊ฐ’์ด ์ž๋™์œผ๋กœ ์กฐ์ ˆ๋˜๊ณ  ImageView๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.
    ๊ทธ๋Ÿฌ๋‚˜ ์ˆœ์ˆ˜ UIView๋Š” ๋„ฃ๊ณ  ์˜คํ†  ๋ ˆ์ด์•„์›ƒ์„ ์ค‘์•™์œผ๋กœ๋งŒ ์žก์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ฝ˜ํ…Œ์ด๋„ˆ ๋ทฐ ์—ญํ• ์„ ํ•˜๋Š” ๋ทฐ๋“ค์€ ๊ณ ์œ  ์‚ฌ์ด์ฆˆ๊ฐ€ ์—†๋‹ค. UILabel, UIButton, UIImageView์™€ ๋‹ฌ๋ฆฌ ๊ณ ์œ  ์‚ฌ์ด์ฆˆ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

  • intrinsicContentSize์™€ frame์˜ ์ฐจ์ด์ ?

    • intrinsicContentSize๋Š” get-only ํ”„๋กœํผํ‹ฐ๋ผ ์ˆ˜์ •์ด์•ˆ๋˜๊ณ  frame์€ ์ˆ˜์ •์ด๊ฐ€๋Šฅํ•˜๋‹ค.

    • frame์˜์—ญ์„ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ ํ•ด์„œ intrinsicContentSize์˜ ๊ฐ’์ด ๋‹ฌ๋ผ์ง€์ง€์•Š๋Š”๋‹ค. ์„œ๋กœ ์˜์กดํ•˜๊ณ  ์žˆ์ง€์•Š๊ธฐ๋•Œ๋ฌธ์— intrinsicContentSize๋ฅผ ํ†ตํ•ด ๋ทฐ์˜ ๋ณธ๋ž˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.


  • Content Hugging?

    ํ—ˆ๊น… = ๊ฐ์‹ธ๋‹ค = ์•ˆ์œผ๋กœ ์ค„์–ด๋“ค๋‹ค, ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์•„์ง€๋ ค๊ณ  ํ•˜๋Š” ์„ธ๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    ์ปจํ…์ธ  ๊ณ ์œ  ์‚ฌ์ด์ฆˆ(IntrinsicContentSize) ๋ณด๋‹ค ๋ทฐ๊ฐ€ ์ปค์ง€์ง€ ์•Š๋„๋ก ์ œํ•œํ•˜๋Š” ์šฐ์„ ๋„์ด๋‹ค. ๋‹ค๋ฅธ ์ œ์•ฝ์‚ฌํ•ญ๋ณด๋‹ค ์šฐ์„ ๋„๊ฐ€ ๋†’์œผ๋ฉด ๋ทฐ๊ฐ€ ์ปจํ…์ธ  ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ์ปค์ง€์ง€ ์•Š๋Š”๋‹ค.

    ๋‚จ์€ ์—ฌ๋ฐฑ์„ ๋‘˜ ์ค‘ ์–ด๋–ค Label๋กœ ์ฑ„์šธ๊ฑฐ๋‹ˆ? ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒํ•˜์ง€ ์•Š์„ Label์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋” ๋†’๊ฒŒ ์ง€์ •ํ•˜๋ ด
    ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ๊ณ ์œ  ์‚ฌ์ด์ฆˆ ์œ ์ง€, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์œผ๋ฉด ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚œ๋‹จ๋‹ค.


    ["LEFT" label]["RIGHT" label] ์„ leading, trailing 0์„ ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์•„์ง„๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  horizontal hugging ์šฐ์„ ์ˆœ์œ„๋ฅผ ์กฐ์ •ํ•˜๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค.
    image

    ์—ฌ๊ธฐ์„œ hugging priority๊ฐ€ ํŒŒ๋ž€์ƒ‰ > ์ฃผํ™ฉ์ƒ‰์ด ๋˜๋ฉด ๋‘˜ ์ค‘ ๋” ๋‚ฎ์€ ์ฃผํ™ฉ์ƒ‰์ด ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค.

    image

  • Compression Resistance?

    resistance = ์ €ํ•ญํ•˜๋‹ค = ๋ฐ”๊นฅ์œผ๋กœ ๋Š˜์–ด๋‚˜๋‹ค, ์ƒ๋Œ€์ ์œผ๋กœ ์ปค์ง€๋ ค๊ณ  ํ•˜๋Š” ์„ธ๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ปจํ…์ธ  ๊ณ ์œ  ์‚ฌ์ด์ฆˆ(IntrinsicContentSize)๋ณด๋‹ค ๋ทฐ๊ฐ€ ์ž‘์•„์ง€์ง€ ์•Š๋„๋ก ์ œํ•œํ•œ๋‹ค. ๋‹ค๋ฅธ ์ œ์•ฝ์‚ฌํ•ญ๋ณด๋‹ค ์šฐ์„ ๋„๊ฐ€ ๋†’์œผ๋ฉด ๋ทฐ๊ฐ€ ์ปจํ…์ธ ์‚ฌ์ด์ฆˆ ๋ณด๋‹ค ์ž‘์•„์ง€์ง€ ์•Š๋Š”๋‹ค.

    ๊ณต๊ฐ„์ด ์ข์€๋ฐ ๋ˆ„๊ฐ€ ์ค„์–ด๋“ค๋ž˜? ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค์ง€ ์•Š์„ Label์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋” ๋†’๊ฒŒ ์ง€์ •ํ•˜๋ ด
    ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ๊ณ ์œ  ์‚ฌ์ด์ฆˆ ์œ ์ง€, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์œผ๋ฉด ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง„๋‹จ๋‹ค.


    ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•„๊นŒ์ฒ˜๋Ÿผ ์˜คํ† ๋ฅผ ์žก๊ณ  ์ด๋ฒˆ์—” ๋ผ๋ฒจ์˜ ๋„ˆ๋น„๊ฐ€(๋‚ด์šฉ์ด) ํ™”๋ฉด์„ ๋„˜์–ด๊ฐ€๋„๋ก ๋‚ด์šฉ์„ ๋งŽ์ด ์ž‘์„ฑํ•˜์˜€๋‹ค. ๊ทธ๋žฌ๋”๋‹ˆ ์ด๋ฒˆ์—” horizontaol compression ์šฐ์„ ์ˆœ์œ„๋ฅผ ์กฐ์ •ํ•˜๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค. image

    ์—ฌ๊ธฐ์„œ compression priority๊ฐ€ ํŒŒ๋ž€์ƒ‰ > ์ฃผํ™ฉ์ƒ‰์ด ๋˜๋ฉด ๋‘˜ ์ค‘ ๋” ๋‚ฎ์€ ์ฃผํ™ฉ์ƒ‰์ด ํŒŒ๋ž€์ƒ‰์ด ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ์–‘๋ณดํ•˜๋ฉฐ ์ค„์–ด๋“ค๊ฒŒ๋œ๋‹ค.

    image