• Feed
  • Explore
  • Ranking
/
๐ŸŽจ UIKit & SwiftUI
15
iOS UI ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ UIKit๊ณผ SwiftUI ๊ด€๋ จ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.





์ง€
์ง€์„ฑ
4 ํŒ”๋กœ์›Œ
ยท
0 ํŒ”๋กœ์ž‰
๊ณ ์–‘์ด ์•‰ํ˜€๋†“๊ณ  ์ฝ”๋”ฉ
ํƒœ๊ทธ

์ตœ๊ทผ ๋Œ“๊ธ€
[UIKit] UI ์—…๋ฐ์ดํŠธ "ํ•ด์ค˜", ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์•ฑ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ข…์ข… ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์„ ๊ฒช๊ฒŒ ๋œ๋‹ค.๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ๊ฐ’์„ ์–ด๋””์— ์•Œ๋ ค์ค˜์•ผ ํ•˜์ง€?โ€โ€œViewModel์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ View์— ์•Œ๋ ค์ฃผ์ง€?โ€โ€œ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”๋ฐ, View๋Š” ์™œ ๊ฐ€๋งŒํžˆ ์žˆ์ง€...?โ€์ด๋Ÿด ๋•Œ ํ•„์š”ํ•œ ๊ฒŒ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์œผ๋กœ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€Œ๋ฉด UI์— ๋ฐ˜์˜๋˜๋„๋ก ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ผ์ข…์˜ "ํŒŒ์ดํ”„ ๋ผ์ธ"์ด๋‹ค.์—ฌ๊ธฐ์—์„œ๋Š” UIKi
0
0
a year ago
8 min read

[UIKit] UIView์˜ tag ์‚ฌ์šฉ์ด ์•ˆํ‹ฐํŒจํ„ด์ธ ์ด์œ ์™€ ๋Œ€์•ˆUIKit์—์„œ UIButton.tag๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฒ„ํŠผ์„ ๊ตฌ๋ถ„ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ์•ˆํ‹ฐํŒจํ„ด์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด ๊ธ€์— tag๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์™œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š”์ง€, ๋Œ€์•ˆ์€ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ๊ธฐ๋กํ•œ๋‹ค.UIButton.tag๋ž€?UIKit์—์„œ tag๋Š” UIView์˜ ์†์„ฑ์œผ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •์ˆ˜(Int) ๊ฐ’์„ ๋ถ€์—ฌํ•˜์—ฌ ํŠน์ • ๋ทฐ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค.le
0
0
a year ago
5 min read

[UIKit] ๊ทธ๋ผ๋ฐ์ด์…˜ ํšจ๊ณผ ์ ์šฉํ•˜๊ธฐiOS์—์„œ๋Š” CAGradientLayer๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.CAGradientLayer๋ž€?CAGadientLayer๋Š” Core Animation์˜ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ, UIView์˜ ๋ฐฐ๊ฒฝ์— ๋ถ€๋“œ๋Ÿฌ์šด ์ƒ‰์ƒ ์ „ํ™˜(๊ทธ๋ผ๋ฐ์ด์…˜ ํšจ๊ณผ)์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.์ฃผ์š” ํŠน์ง•์„ฑ๋Šฅ ์ตœ์ ํ™”: GPU์—์„œ ๋ Œ๋”๋ง๋˜์–ด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•จ๋‹ค์–‘ํ•œ ์ƒ‰์ƒ
0
0
a year ago
5 min read

[UIKit] ScrollView์—์„œ touchesBegan์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฌธ์ œ ์ƒํ™ฉUIKit์„ ์‚ฌ์šฉํ•˜์—ฌ UIScrollView ๋‚ด๋ถ€์—์„œ ํ„ฐ์น˜ ์ด๋ฒคํŠธ(touchesBegan)๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ, UITextField๋‚˜ UITextView๊ฐ€ ํฌํ•จ๋œ ScrollView์—์„œ ํ‚ค๋ณด๋“œ๋ฅผ ๋‹ซ๊ธฐ ์œ„ํ•ด ํ„ฐ์น˜ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๋ ค ํ•  ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•œ๋‹ค.๋ฌธ์ œ์˜ ์›์ธ:UIScrollView๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ„ฐ์น˜์ด๋ฒคํŠธ๋ฅผ
0
0
a year ago
4 min read

[UIKit] SnapKit์œผ๋กœ iOS ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ์šฉํ•˜์ž!iOS ์•ฑ ๊ฐœ๋ฐœ์—์„œ UI๋ฅผ ๋งŒ๋“ค ๋•Œ ์˜คํ† ๋ ˆ์ด์•„์›ƒ(Auto Layout)์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜๋‹ค.ํ•˜์ง€๋งŒ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋กœ ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.SnapKit์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ์˜คํ† ๋ ˆ์ด์•„์›ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.SnapKit์ด๋ž€?SnapKit์€ Swift์—์„œ ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ
0
0
a year ago
5 min read

[UIKit] UITableViewCell์—์„œ dequeueReusableCell ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐUITableView์—์„œ dequeueReusableCell(withIdentifier:)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ฑ์ด ํฌ๋ž˜์‹œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” dequeueReusableCell ๊ด€๋ จ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.๋ฌธ์ œ ์ƒํ™ฉUITableView์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.Fatal error: Unexpectedly foun
0
0
a year ago
2 min read

[UIKit] UITableView์—์„œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ›„ โ€˜Index out of rangeโ€™ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•UITableView์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ Index out of range ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.๋‹ค๋“ค ์•Œ๋‹ค์‹œํ”ผ ์ด ์˜ค๋ฅ˜๋Š” Index๊ฐ€ ์„ค์ •๋œ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๋ฒ„๋ฆด ๊ฒฝ์šฐ ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ์ด๋‹ค.๋‚˜์˜ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋œ ์ƒํƒœ์—์„œ ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜์—ฌ ๋ฐœ์ƒํ–ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ์ด ์˜ค๋ฅ˜์˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.๋ฌธ์ œ ์ƒํ™ฉํ…Œ์ด๋ธ—์—์„œ deleteRows(at:w
0
0
a year ago
3 min read

[UIKit] UIKit ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ธฐ ํ•™์Šต (UI์™€ ๋กœ์ง ์—ฐ๊ฒฐํ•˜๊ธฐ)UIKit์ด๋ž€UIKit์€ iOS ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ•ต์‹ฌ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, UI ์š”์†Œ ๋ฐ ์ด๋ฒคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. UIKit์„ ํ™œ์šฉํ•˜๋ฉด ๋ฒ„ํŠผ, ๋ ˆ์ด๋ธ”, ํ…Œ์ด๋ธ” ๋ทฐ ๋“ฑ์˜ UI ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ , ํ™”๋ฉด ์ „ํ™˜ ๋ฐ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.์ฃผ์š” UI ๊ตฌ์„ฑ ์š”์†ŒUIView: ๋ชจ๋“  UI ์š”์†Œ์˜ ๊ธฐ๋ณธ ํด๋ž˜์ŠคUILabel: ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ ˆ์ด๋ธ”UIButton:
0
0
a year ago
3 min read

[UIKit] ์ฝ”๋“œ๋กœ UITextField Placeholder ์„ค์ •ํ•˜๊ธฐํ˜„์žฌ ๊ฐœ๋ฐœ ์ค‘์ธ ์•ฑ์— UITextField ์™€ UITextView ๋ฅผ ํ•œ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋‘˜ ๋ชจ๋‘์— Placeholder๋ฅผ ์ ์šฉํ–ˆ๋Š”๋ฐ, UITextField ๋Š” Attribute Inspector์—์„œ Placeholder ์˜ต์…˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ์„ค์ •ํ–ˆ๊ณ , UITextView ๋Š” ์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ์ด์Šˆ๋ฅผ ํ•˜๋‚˜ ๋ฐœ๊ฒฌํ–ˆ
0
0
a year ago
2 min read

[UIKit] UITableView์—์„œ Cell ์ถ”๊ฐ€/์ˆ˜์ •์„ ํ•˜๋‚˜์˜ View์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐTo Do List ์•ฑ์— ์ƒˆ๋กœ์šด ํ•  ์ผ์„ ์ถ”๊ฐ€ํ•  ๋•Œ, ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•œ View๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ดํ›„์— ์ด๋ฏธ ์ถ”๊ฐ€๋œ ํ•  ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ, ๊ธฐ์กด View๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.์ฆ‰, UITableViewCell ์˜ ๋ฐ์ดํ„ฐ๋ฅผ View๋กœ ์ „๋‹ฌํ•ด์„œ ๊ธฐ์กด์˜ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ–ˆ๋‹ค.์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ UITabl
0
0
a year ago
2 min read

[UIKit] UITableView์—์„œ ๋ฐ์ดํ„ฐ ์—†์„ ๋•Œ ๋ฉ”์‹œ์ง€ ํ‘œ์‹œํ•˜๊ธฐTo Do List ์•ฑ์„ ๊ฐœ๋ฐœ์ค‘์—, UITableView ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ "ํ•  ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ผ"๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘์•™์— ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.(์˜ˆ๋ฅผ ๋“ค๋ฉด, ์•„๋ž˜ ๋ฐฐ๋ฏผ์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ™์€?)ํ•˜์ง€๋งŒ UITableView ์—๋Š” Empty State๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ์— ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง์ ‘ ๊ตฌํ˜„์„ ์‹œ๋„ํ–ˆ๋‹ค.UITableViewCell ์„ ๋งŒ๋“ค์–ด์„œ Empty ์ƒ
0
0
a year ago
2 min read

[UIKit] UITextView์— Placeholder ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•UITextField ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Placeholder ์†์„ฑ์ด ์žˆ์ง€๋งŒ, UITextView ์—๋Š” Placeholder ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ, UITextView ์— Placeholder๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.Placeholder๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด๋ดค๋‹ค.Attribute Inspector์—์„œ Placeholder ์†์„ฑ
0
0
a year ago
2 min read

[UIKit] ์•ฑ ์‹คํ–‰ ์‹œ Date Picker ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐStack View ์— Date Picker ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ , Attribute Inspector์—์„œ Alignment๋ฅผ Left๋กœ ์„ค์ •ํ–ˆ์Œ์—๋„, ์•ฑ ์‹คํ–‰ ์‹œ Date Picker ๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.์ด์Šˆ ์žฌํ˜„UIDatePicker ๋ฅผ UIStackView ์•ˆ์— ์ถ”๊ฐ€UIDatePicker ์˜ Alignment ์†์„ฑ์„ Left(Leading)
0
0
a year ago
2 min read
SwiftiosUIKitData Binding
์•„์ง ๋Œ“๊ธ€์ด ์—†์–ด์š”