์ „์ฒด ๊ธ€ 124

[Swift] Show Library ํ™œ์šฉ (Navigation Bar, Label, Button, Text Field)

Xcode project ํŒŒ์ผ ๋งŒ๋“ค์–ด์„œ ์•„๋ž˜ ์š”๊ตฌ์‚ฌํ•ญ ๋งŒ๋“ค์–ด๋ณด๊ธฐ!! โ‘  Navigation Bar ์—ฐ๊ฒฐํ•˜๊ธฐ โ‘ก 1๋ฒˆ view์— 2๋ฒˆ view๋กœ ๋„˜์–ด๊ฐ€๋Š” button ๋งŒ๋“ค๊ธฐ 1. ๋ฒ„ํŠผ ์ƒ์„ฑ ํ›„, ์ƒˆ๋กœ์šด ViewController๋ฅผ ๋งŒ๋“ค๊ธฐ 2. ๋‘ ๊ฐœ์˜ ViewController ๊ตฌ๋ถ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ background ์ƒ‰์ƒ ๋„ฃ๊ธฐ 3. SecondViewController ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ 4. StoryBoard์— SecondViewController Class ์—ฐ๊ฒฐํ•˜๊ณ , StoryBoard ID ๋„ฃ์–ด์ฃผ๊ธฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ๋ฒ„ํŠผ ํด๋ฆญ์‹œ SecondVC๋กœ ๋„˜์–ด๊ฐ! โ‘ข 2๋ฒˆ view์— 1๋ฒˆ view๋กœ ๋„˜์–ด๊ฐ€๋Š” button ๋งŒ๋“ค๊ธฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„๋ž˜ ์˜์ƒ์ฒ˜๋Ÿผ ํ™”๋ฉด ์ „ํ™˜๋จ! โ‘ฃ 1๋ฒˆ view์— textField, 2๋ฒˆ v..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ํ•ด์„ค๊ฐ•์˜ & Auto Layout ์—ฐ์Šต

์˜ค๋Š˜์€ todoList ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ์ œ์ถœํ•˜๋Š” ๋‚ ์ด๋‹ค. ์ œ์ถœ ํ›„, ํ”ผ๋“œ๋ฐฑ๊นŒ์ง€ ๋ชจ๋‘ ๋ฐ›์€ ์ƒํƒœ๊ณ , ํ”ผ๋“œ๋ฐฑ ์ˆ˜์ •์€ ๋‚ด์ผ ํ•  ์˜ˆ์ •์ด๋‹ค.๐Ÿ˜€ ์˜คํ›„์—๋Š” ํ•ด์„ค ๊ฐ•์˜๋ฅผ ๋“ค์€ ํ›„, ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—ฐ์Šต์„ ํ–ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์€ ๋ฐ‘์— ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•ด์„ค๊ฐ•์˜๊ฐ€ ์˜ฌ๋ผ์™”๋Š”๋ฐ, ์—ญ์‹œ ๋˜ ๋‹ค๋ฅธ ํ’€์ด๋กœ ํ•ด์ฃผ์…”์„œ ํ•œ ๋ฒˆ ๋” ๋ณด๊ณ  ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. โ‘  ์™„๋ฃŒ ๊ฐ€๋กœ์„ (strikeThrough) ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ๋ƒฅ viewContoller ํด๋ž˜์Šค ์•ˆ์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ, ์–ด๋””์„œ๋“  ์“ธ ์ˆ˜ ์žˆ๋„๋ก String์˜ extension์œผ๋กœ ๋นผ๊ธฐ โ‘ก ์ถ”๊ฐ€ํ•˜๊ธฐ, ์ˆ˜์ •ํ•˜๊ธฐ IBAction์—์„œ newTodo๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , self.todoList[row].title = newTitle๋กœ ํ•ด์„œ ์ฝ”๋“œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ โ‘ข cellForRowAt ์•ˆ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_4์ผ์ฐจ_TIL

์˜ค๋Š˜์€ swift ๋ฌธ๋ฒ• ๊ณต๋ถ€์™€ todoList ๋งŒ๋“ค๊ธฐ์—์„œ ํ•„์ˆ˜ ๊ตฌํ˜„ ์ด์™ธ์— ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์‹œ๋„ํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. todoList ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์–ด์„œ UserDefault์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ, struct ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ณต์žกํ•ด์„œ ์‹œ๋„๋งŒ ํ•ด๋ณด๊ณ , ์™„์„ฑ์€ ๋ชปํ–ˆ๋‹ค..๐Ÿ˜ญ ๋Œ€์‹ ์— Int ํƒ€์ž…์ด๋‚˜ ๋ฌธ์ž์—ด ๋ฐฐ์—ด ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ดค๋‹ค. UserDefault๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ๊ณต๋ถ€๋ฅผ ์ข€ ๋” ํ•ด๋ณด๊ณ  ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค. ์˜ค๋Š˜์€ ๊ณต๋ถ€ํ–ˆ๋˜ Swift ๋ฌธ๋ฒ• ๊ด€๋ จํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค. components & split components ์ฃผ์–ด์ง„ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ(separator)๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ˆ˜์‹ ์ž์˜ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ..

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

์˜ค๋Š˜์€ ์˜คํ›„ 4์‹œ Standard 1์ฃผ์ฐจ ์ฒซ zoom ๊ฐ•์˜๋ฅผ ์‹œ์ž‘ํ•œ ๋‚ ์ด๋‹ค. ๋ฏธ๋ฆฌ ์‚ฌ์ „ ์˜ˆ์Šต ๊ณผ์ œ๋กœ ๋‚ด์ฃผ์‹  ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—ฐ์Šต์„ ์–ด์ œ๋ž‘ ์˜ค๋Š˜ ์ˆ˜์—… ์ „๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ, ์™„์„ฑ์€ ํ–ˆ์ง€๋งŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ์‹ค์ˆ˜๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋กœ ๋Œ๋ ธ์„ ๋•Œ ํ˜•ํƒœ๊ฐ€ ๋ง๊ฐ€์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค. ๐Ÿฅน ๊ทธ๋ž˜์„œ ์ˆ˜์—… ๋•Œ ์Šคํ‹ฐ์ปค์— ๋ฉ”๋ชจํ•˜๋ฉด์„œ ๋“ค์—ˆ๊ณ , zoom ๊ฐ•์˜ ๋๋‚˜์ž๋งˆ์ž, ๋ฉ”๋ชจํ•œ ๋Œ€๋กœ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‹œ๋„ํ•ด ๋ดค๋‹ค. (๋“ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๋‡Œ๋ฅผ ๋ฆฌ์…‹ ์‹œํ‚ค๋Š” ๋ฐ”๋ณด๋ผ..ใ…Žใ…Ž.. ๊ผญ ํ•ด๋ด์•ผ ํ•จ..) ๋‹ค์‹œ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ ๋ง‰ํžˆ๋Š” ๋ถ€๋ถ„์€ ํŠœํ„ฐ๋‹˜ ์ฐพ์•„๊ฐ€์„œ ์—ฌ์ญค๋ณด๊ณ , ์ž˜๋ชป ๋ฉ”๋ชจํ•œ ๋ถ€๋ถ„์€ ๊ณ ์ณ๊ฐ€๋ฉด์„œ ์™„์„ฑํ•ด ๋ดค๋‹ค! ์ฝ”๋“œ๋กœ UI๋ฅผ ์ž˜ ์งœ๋ ค๋ฉด.. Storyboard์—์„œ ๋งŒ๋“ค ๋•Œ, '๋‚˜ ์ด ์ •๋„๋ฉด ์˜คํ† ๋ ˆ์ด์•„์›ƒ ๋งˆ์Šคํ„ฐํ–ˆ๋‹ค!' ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค ์ˆ˜ ์žˆ์„ ๋งŒํผ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์…”์„œ ..

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ฝœ๋ผ์ธ  ์ถ”์ธก

์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ 1์ธ ๊ฒฝ์šฐ 0 ๋ฐ˜ํ™˜, ์œ„ ๊ณผ์ •์„ 500๋ฒˆ ๋ฐ˜๋ณตํ•  ๋•Œ๊นŒ์ง€ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, -1 ๋ฐ˜ํ™˜ ์กฐ๊ฑด๋„ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— count ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ if ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.โ˜บ๏ธ

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_2์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_์„ ํƒ ๊ตฌํ˜„

์˜ค๋Š˜์€ Standard ๋ฐ˜ ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋‚ด์ผ 4์‹œ ์ „๊นŒ์ง€ ์—ฐ์Šตํ•ด๋ด์•ผํ•ด์„œ ์šด๋™ ๋‹ค๋…€์™€์„œ ์˜ค๋Š˜ ๋ฐค์—๋„ ์ด์–ด์„œ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค..^0^ ์˜ค๋Š˜์€ ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€(TodoList ๋งŒ๋“ค๊ธฐ)์— ์ด์–ด์„œ '์ˆ˜์ •ํ•˜๊ธฐ' ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Standard ๋ฐ˜ ๊ณผ์ œ ๋‚ด์šฉ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ด๋‹ค.๐Ÿง Todo ์ˆ˜์ •ํ•˜๊ธฐ ์ˆ˜์ •ํ•˜๊ธฐ ๊ธฐ๋Šฅ์€ ์ด์ „์— ๋“ฑ๋กํ•˜๊ธฐ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค! ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ tableView ์ž…๋ ฅํ•ด์„œ 'Tells the delegate a row is selected.'๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฑฐ ์„ ํƒ! ์ด์ œ ์ฝ”๋“œ์— ๋„ฃ์€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ค˜์•ผํ•œ๋‹ค. ์ด์ „์— ์ถ”๊ฐ€ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด, ๋“ฑ๋กํ•˜๊ธฐ alert ๋„์› ์„ ๋•Œ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๊ฐ€์ง€๊ณ ์™€์„œ ๋‚ด์šฉ๊ณผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๊ณ , ์ˆ˜์ •ํ•ด๋„ ์Šค์œ„์น˜ on/off ์ƒํƒœ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_1์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_ํ•„์ˆ˜ ๊ตฌํ˜„

TIL>์˜ค๋Š˜์€ TodoList ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ๊ตฌํ˜„ ๊ณผ์ •์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.โ˜บ๏ธ์ด์ „์— ์ผ๋˜ ์ฝ”๋“œ ๋‹ค์Œ ๋‚  ๊นŒ๋จน๊ณ ..๋‹ค์‹œ ๋‡Œ ๋ฆฌ์…‹^-^ ํ•˜๋ฃจ ์ข…์ผ ๋ฉ˜ํƒˆ ๋ฐ”์‚ฌ์‚ฌ์‚ญ๐Ÿ’ช๐Ÿป๋‹ค์‹œ ์ฐจ๊ทผ์ฐจ๊ทผ ์‹œ์ž‘..!^^์—ญ์‹œ ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ ์•ˆ ๊นŒ๋จน๊ณ  ๊ธฐ์–ต์— ์˜ค๋ž˜ ๋‚จ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.ใ…Žใ…Ž ์ด๋ฒˆ TodoList ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ์†Œ๊ฐœ๋Š”(4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ) ๊ฒŒ์‹œ๋ฌผ์— ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค.  4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ToDoList ๋งŒ๋“ค๊ธฐ_TIL์˜ค๋Š˜์€ 4์ฃผ์ฐจ ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐœ์ธ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.๐Ÿ˜ƒ ํ•˜..์–ด๋ ต๋‹ค..ใ…Žใ…Žใ…Ž.. ์˜ค๋Š˜ ์–ด๋А ์ •๋„ ๊ตฌํ˜„ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ํ•„์ˆ˜ ๊ตฌํ˜„๊นŒ์ง€ ์™„์„ฑํ•˜๋ ค๋ฉด ์•„์ง ํ•  ๊ฒŒ ๋งŽ์•„์„œ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„๊ณผ ์ฝ”๋“œ ์ •๋ฆฌ๋Š” ๋‚˜์ค‘์— ๋‹คyegenie-coding.tistory.com ์Šคํ† ๋ฆฌ๋ณด๋“œ - ๊ธฐ๋ณธ UI ๊ตฌ์„ฑ ..