iOS ์•ฑ ๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜/TIL

4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_3์ผ์ฐจ_UIView ์—ฐ์Šต

yeggrrr๐Ÿผ 2024. 3. 20. 19:42


<TIL>
์˜ค๋Š˜์€ ์–ด์ œ ๊ณต๋ถ€ํ•œ UIView ์ปดํฌ๋„ŒํŠธ ํ•œ ๋ฒˆ์”ฉ ์ง์ ‘ ์ณ๋ณด๋ฉด์„œ ์—ฐ์Šตํ•˜๊ณ ,
๋‹ค์Œ ์ฃผ๊นŒ์ง€ ํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์—
๋ฐฐ์šด ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๋Œ€๋กœ ๋งŒ๋“ค์–ด๋ดค๋‹ค!

ํ‘ธ๋ฐ”์˜ค ๋Ÿฌ๋ฒ„๋ผ ์—ญ์‹œ๋‚˜ ๋˜ ํ‘ธ๋ฐ”์˜ค ๋“ฑ์žฅ..๐Ÿ˜‚

์˜ค๋Š˜ ์˜ค์ „์—๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€๊ณ ,

๋‚˜๋จธ์ง€ ์˜คํ›„์—๋Š” ํ•˜๋ฃจ ์ข…์ผ ์ด๊ฒƒ๋งŒ ํ–ˆ๋‹ค...ใ…Žใ…Ž....

์•„์ง ์•„๋Š” ๊ฒŒ ๋ณ„๋กœ ์—†์–ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ,
์ง€๋‚œ์ฃผ๊นŒ์ง€๋Š” ๋ฌธ๋ฒ• ์œ„์ฃผ๋กœ๋งŒ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€
์ด๋ ‡๊ฒŒ ์ง์ ‘ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋””์ž์ธํ•˜๊ณ  ๋งŒ๋“ค์–ด๋ณด๋‹ˆ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์—ˆ๋‹ค.

์ง€๋‚œ๋ฒˆ ์•ผ๊ตฌ ์ˆซ์ž ๊ฒŒ์ž„์— ์ด์–ด์„œ ํ‘ธ๋ฐ”์˜ค ๋‚˜์ด ๋งž์ถ”๊ธฐใ…‹ใ…‹ใ…‹....

์•„๋ž˜ ๋‚ด์šฉ์€ ๋งŒ๋“  ๊ฒฐ๊ณผ๋ฌผ๊ณผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์ด๋‹ค.โ˜บ๏ธ




๋จผ์ € ๊ฒฐ๊ณผ๋ฌผ ์˜์ƒ!!

๊ฒฐ๊ณผ๋ฌผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šด ๋‚ด์šฉ ๋ง๊ณ ,
์ถ”๊ฐ€์ ์œผ๋กœ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋ถ€๋ถ„์ด ๋ช‡ ๊ฐ€์ง€ ์žˆ์—ˆ๋‹ค.


textField์— ์ž…๋ ฅ๊ฐ’์ด ์—†์œผ๋ฉด, Enter ๋ฒ„ํŠผ์ด ๋œจ์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ!
Enter ๋ฒ„ํŠผ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ! 
์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋„์šฐ๋Š” ๊ฒƒ!

์ „์ฒด ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์ „์—
์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ณผ์ •์„ ์•„๋ž˜์— ์ •๋ฆฌํ•ด์„œ ์ ์–ด๋ดค๋‹ค. 


์ฒ˜์Œ์— ๊ฐ๊ฐ์˜ UIView ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ฝ”๋“œ๋กœ ๋งŒ๋“  ํ›„,
Enter Button์€ ๋ˆŒ๋ €์„ ๋•Œ, ๋ˆŒ๋ฆฐ ํ‘œ์‹œ๊ฐ€ ์œก์•ˆ์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก
setTitleColor๋ฅผ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ƒ‰์ƒ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ cornerRadius๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
Enter Button์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ์ฒ˜๋ฆฌํ•ด์คฌ๋‹ค.

๊ทธ๋Ÿฐ ํ›„, buttonTapped()๋ผ๋Š” ์˜ค๋ธŒ์  ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ , 

Button์ด ๋ˆŒ๋ ธ์„ ๋•Œ ๋ฌด์–ธ๊ฐ€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก addTarget์„ ์‚ฌ์šฉํ•ด์คฌ๋‹ค.

addTarget์€ UIButton์ด๋‚˜ UIField์™€ ๊ฐ™์ด
์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜์—ฌ

ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋งˆ๋‹ค ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋…€์„์ด๋‹ค!
์—”ํ„ฐ๋ฒ„ํŠผ๋ช….addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

์—ฐ๊ฒฐํ•œ ํ›„,
ํ•จ์ˆ˜ ์•ˆ์— textField๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด, Enter๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”๋ฅผ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด
isEmpty์œผ๋กœ ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ ,
true๋ผ๋ฉด, isHidden์œผ๋กœ button์„ ๋น„ํ™œ์„ฑํ™” ์‹œ์ผœ์คฌ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ
๋‚˜์ด๋ฅผ ํ‹€๋ฆฌ๊ฒŒ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ํƒ€์ž…์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ •๋‹ต์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ
ํ•ด๋‹น ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.




์•„๋ž˜๋Š” ์œ„์— ์ •๋ฆฌํ•œ ๋Œ€๋กœ ๊ตฌํ˜„ํ•œ ์ „์ฒด ์ฝ”๋“œ์ด๋‹ค.๐Ÿ˜ƒ

์œ„ ์ฝ”๋“œ์—์„œ ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ๋ถ€๋ถ„์€ ์ฒ˜์Œ์— ์ ์—ˆ๋˜ ์ฝ”๋“œ์ด๋‹ค.
๊ทธ๋Ÿฐ๋ฐ,  ageText.isEmpty๋Š” bool ํƒ€์ž…์ด๋‹ˆ๊นŒ

enterButtion.isHidden = ageText.isEmpty

์ด๋ ‡๊ฒŒ ํ•œ ์ค„๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์œ„ ์ฝ”๋“œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์•„๋ž˜์™€ ๊ฐ™์ด ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


 

728x90