Deep_Dev
article thumbnail
[iOS] AutoLayout : Dynamic Text ( ๋™์  ํ…์ŠคํŠธ )
๐ŸŽ iOS/UIKit 2023. 3. 30. 20:49

๐Ÿ“Œ AutoLayout : Dynamic Text ๋™์  ํ…์ŠคํŠธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• View์˜ ์œ„์น˜๋Š” ์ˆ˜ํ‰, ์ˆ˜์ง์œผ๋กœ ์„ค์ •์„ ํ•ด์ฃผ์—ˆ๊ณ  View๋‚ด imageView์˜ ์œ„์น˜๋ฅผ ์žก์•„์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ฝ‰์ฐจ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ์ƒํ•˜์ขŒ์šฐ ์—ฌ๋ฐฑ์„ 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋น„์œจ์ด ๊นจ์ ธ์„œ ์ด์ƒํ•˜๊ฒŒ ๋ณด์ผ ๊ฒƒ์ด๋‹ค. ๊ทธ ์ด์œ ๋Š” imageView์˜ ํฌ๊ธฐ์— ๋“ค์–ด๊ฐ€๋Š” image๋ฅผ ํ”ฝ์…€๊ฐ’ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”๊ธฐ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, ์ œ์•ฝ์กฐ๊ฑด์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„์„œ์ด๋‹ค. ๋จผ์ € imageView์˜ ContentMode๋ฅผ Asfect Fit์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์•„์ง ํฌ๊ธฐ๊ฐ€ ๋งž์ง€ ์•Š๋Š”๋‹ค. image์˜ ์›๋ณธ ํฌ๊ธฐ๋Œ€๋กœ ์˜ฌ๋ฆฌ๋ ค๋ฉด -> ์‚ฌ์ง„์˜ Aspect Ratio๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์ง„์˜ ์›๋ณธ ํฌ๊ธฐ(width, height )๋ฅผ ๋น„์œจ์„ ์„ค์ •ํ•ด์ค€๋‹ค. ๊ทธ๋Ÿผ imageView์˜ ํฌ๊ธฐ๊ฐ€ ํ•ด๊ฒฐ ์™„๋ฃŒ ..

article thumbnail
[iOS] AutoLayout : StackView ํ™œ์šฉ
๐ŸŽ iOS/UIKit 2023. 3. 30. 17:20

๐Ÿ“Œ AutoLayout : StackView ํ™œ์šฉํ•ด์„œ ๊ณ„์‚ฐ๊ธฐ Layout ๊ตฌํ˜„ 1. StackView๋กœ UIButton ๋ฌถ๊ธฐ ( ๊ฐ€๋กœ๋กœ ๋ฌถ๋“ , ์„ธ๋กœ๋กœ ๋ฌถ๋“  ) 2. StackView ๋‚ด์—์„œ ๊ฐ์ฒด๋“ค์˜ ํฌ๊ธฐ ์„ค์ • ( Button ๋ชจ๋‘ ์„ ํƒํ•˜์—ฌ Equals Width ) 2-1. Multiplier๋กœ ํฌ๊ธฐ ๋น„์œจ ์„ค์ • ( ์ˆซ์ž 0์ด ์žˆ๋Š” ์ œ์ผ ํ•˜๋‹จ StackView ) 2-1. StackView ์œ„์น˜ ์„ค์ • 3. UIButton ํŠน์ • ๋†’์ด๊ฐ’ ์ง€์ •ํ•˜์ง€ ๋ง๊ณ , Aspect Ratio ๋กœ ์„ค์ •ํ•˜์—ฌ Multiplier ๋น„์œจ 1:1 ( -> ์ •์‚ฌ๊ฐํ˜• ์žกํžŒ๋‹ค ) ๐Ÿ“Œ UIButton ๋‘ฅ๊ธ€๊ฒŒ @IBOutlet weak var myButton : UIButton! myButton.layer.masksToBounds = true ..

[iOS] reloadData ๊ฐœ์š” ๋ฐ ์ฐธ๊ณ ์‚ฌํ•ญ
๐ŸŽ iOS/UIKit 2023. 3. 25. 16:42

๐Ÿ“‹ reloadData() ๊ฐœ์š” ๋ฐ ์ฐธ๊ณ ์‚ฌํ•ญ ๐Ÿ“Œ reloadData() reloadData()๋Š” ํ…Œ์ด๋ธ”๋ทฐ์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์ด๋‹ค. ํ…Œ์ด๋ธ”๋ทฐ ์ธ์Šคํ„ด์Šค์—์„œ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. reloadData()๋Š” ํ…Œ์ด๋ธ” ๋ทฐ์˜ ํ˜„์žฌ ๋ณด์ด๋Š” ์ „์ฒด์—ด(row), ์„น์…˜(section)์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. reloadData()๋Š” ํŠน์ • ์—ด, ์„น์…˜์˜ ๋ถ€๋ถ„์  ์—…๋ฐ์ดํŠธ๊ฐ€ ์•„๋‹Œ, ํ…Œ์ด๋ธ” ๋ทฐ์˜ ์ „์ฒด ์˜์—ญ์„ ์—…๋ฐ์ดํŠธ ํ• ๋•Œ ํšจ๊ณผ์ ์ด๋‹ค. ๐Ÿ“Œ Declaration ์„ ์–ธ ๋ฐฉ์‹ func reloadData() reloadData()๋Š” ํ…Œ์ด๋ธ”๋ทฐ์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋กœ, ์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ํƒ€์ž…์€ UICollectionView, UITableView ๋“ฑ์ด ์žˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” TableView๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณด๋„..

article thumbnail
[iOS] ํƒญ๋ฐ” - UITabBarController
๐ŸŽ iOS/UIKit 2023. 3. 25. 16:26

https://developer.apple.com/documentation/uikit/uitabbarcontroller/ ์•„์ดํฐ์˜ ๊ธฐ๋ณธ ์‹œ๊ณ„์•ฑ ํ•˜๋‹จ๋ถ€๋ฅผ ๋ณด๋ฉด 4๊ฐœ์˜ ์•„์ด์ฝ˜์ด ์žˆ๋‹ค. ์ด๊ฒƒ์ด UITabBarController ๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๊ณณ์ด๋‹ค. ๐Ÿ“Œ UITabBarController UITabBarController๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Š” ๋‹ค์ค‘ ์„ ํƒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ์ž์‹ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ๊ฐ ํƒญ์˜ ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปค์Šคํ…€ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ํƒญ์„ ์„ ํƒํ•œ๋‹ค๋ฉด, ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํŠน์ • ํƒญ์— ํ•ด๋‹นํ•˜๋Š” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ root view ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ํƒญ ๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋Œ€๊ฐœ ์„œ๋กœ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํ•˜๊ฑฐ๋‚˜, ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ ์Šคํƒ€์ผ์˜ ์ธ..

article thumbnail
[iOS] UI Switch
๐ŸŽ iOS/UIKit 2023. 3. 25. 15:58

๐Ÿ“‹ UI Switch 1. UISwitch๋ฅผ ํƒญํ•œ๋‹ค. 2. alert๊ฐ€ ๋œฌ๋‹ค. 3. alert์—์„œ OK๋ฅผ ๋ˆ„๋ฅด๋ฉด UISwitch์˜ ์ƒํƒœ(value)๊ฐ€ ๋ฐ”๋€๋‹ค. ์—ฌ๊ธฐ์„œ, UISwitch์˜ ๊ฐ’์„ ๋ฐ”๊ฟ€๋ ค๊ณ  ํ„ฐ์น˜๋ฅผ ํ–ˆ์ง€๋งŒ alert๊ฐ€ ๋œจ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ OK๋ฅผ ๋ˆ„๋ฅผ ๋•Œ ๊นŒ์ง€๋Š” ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š”, setOn์„ ์ด์šฉํ•œ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ, 1. Switch๊ฐ€ On ์ƒํƒœ๋กœ ์žˆ๊ณ , ํ„ฐ์น˜ํ•˜์—ฌ Offํ•˜๊ณ ์ž ํ• ๋•Œ alert๊ฐ€ ๋œฌ๋‹ค. 2. cancel์„ ๋ˆ„๋ฅด๋ฉด ์›๋ž˜ Switch์˜ ๊ฐ’์ด ์œ ์ง€๊ฐ€ ๋œ๋‹ค.( = On์œผ๋กœ ์œ ์ง€ ) 3. OK๋ฅผ ๋ˆ„๋ฅด๋ฉด Switch์˜ ๊ฐ’์ด Off๊ฐ€ ๋œ๋‹ค. @IBAction func switchValueChanged(_ sender: Any) { if self.mySwi..

๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ

('https://leesangdo.tistory.com/'์ดํ•˜ 'choeatce')์€(๋Š”) ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€ ์ œ30์กฐ์— ๋”ฐ๋ผ ์ •๋ณด์ฃผ์ฒด์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์ด์™€ ๊ด€๋ จํ•œ ๊ณ ์ถฉ์„ ์‹ ์†ํ•˜๊ณ  ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ๋ฐฉ์นจ์„ ์ˆ˜๋ฆฝ·๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. โ—‹ ์ด ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ์€ 2023๋…„ 1์›” 1๋ถ€ํ„ฐ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ œ1์กฐ(๊ฐœ์ธ์ •๋ณด์˜ ์ฒ˜๋ฆฌ ๋ชฉ์ ) ('https://leesangdo.tistory.com/'์ดํ•˜ 'choeatce')์€(๋Š”) ๋‹ค์Œ์˜ ๋ชฉ์ ์„ ์œ„ํ•˜์—ฌ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ์ธ์ •๋ณด๋Š” ๋‹ค์Œ์˜ ๋ชฉ์  ์ด์™ธ์˜ ์šฉ๋„๋กœ๋Š” ์ด์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด์šฉ ๋ชฉ์ ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€ ์ œ18์กฐ์— ๋”ฐ๋ผ ๋ณ„๋„์˜ ๋™์˜๋ฅผ ๋ฐ›๋Š” ๋“ฑ ํ•„์š”ํ•œ ์กฐ์น˜๋ฅผ ์ดํ–‰ํ•  ..

article thumbnail
[iOS] Modal dismiss ์ดํ›„ reloadData() ํ•˜๊ธฐ
๐ŸŽ iOS/UIKit 2023. 3. 21. 14:24

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰๋„์ค‘ NavigationController๋กœ ์—ฐ๊ฒฐ๋œ View์—์„œ dismiss์ดํ›„ ์ž๋™์œผ๋กœ reloadData()๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. dismiss ์ดํ›„ ๋ณด์ด๋Š” ํ™”๋ฉด์—์„œ viewWillAppear()๋ฅผ ํ•ด์คฌ์Œ์—๋„ ๋ง์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋งํ•œ ๊ฒฐ๊ณผ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. Navigation Controller๋ฅผ dismiss ํ•œ ์ดํ›„์—๋Š” viewWillAppear๋‚˜ viewDidAppear๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. CollectionView๋‚˜ TableView๋ฅผ reload ํ•˜๋ ค๋ฉด NotificationCenter๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜์ฝ”๋“œ์—์„œ TableViewController์™€ DetailViewController๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, DetailViewController๊ฐ€ ๋ชจ๋‹ฌ๋กœ ๋„์šธ..

article thumbnail
[Swift ๊ธฐ์ดˆ] ๋ชจ๋‚˜๋“œ

๋ชจ๋‚˜๋“œ ๋ชจ๋‚˜๋“œ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๋””์ž์ธ ํŒจํ„ด ํ˜น์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ํƒ€์ž…์„ ์ธ์ž๋กœ ๋ฐ›๋Š” ํƒ€์ž… ( ํŠน์ • ํƒ€์ž…์˜ ๊ฐ’์„ ํฌ์žฅ ) ํŠน์ • ํƒ€์ž…์˜ ๊ฐ’์„ ํฌ์žฅํ•œ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)๊ฐ€ ์กด์žฌ ํฌ์žฅ๋œ ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํฌ์žฅํ•˜๋Š” ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)๊ฐ€ ์กด์žฌ ์ปจํ…์ŠคํŠธ ์ปจํ…์ŠคํŠธcontext๋Š” ์ปจํ…์ธ ๋ฅผ ๋‹ด์€ ์ƒ์ž ๊ฐ™์€ ๊ฒƒ ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. func addThree(_ num: Int) -> Int { return num + 3 } //๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ผ๋ฐ˜ Int ํƒ€์ž…์˜ ๊ฐ’์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰ addThree(2) //์ „๋‹ฌ์ธ์ž๊ฐ€ ์ˆœ์ˆ˜ํ•œ ๊ฐ’์ด ์•„๋‹Œ ์˜ต์…”๋„์ด๋ผ๋Š” ์ปจํ…์ŠคํŠธ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์ „๋‹ฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ๋ฐœ์ƒ addThree(..