iOS14 [iOS] addsubview()์ ํ๋ฒ์ ์ฌ๋ฌ subview ์ถ๊ฐํ๊ธฐ ๋ทฐ ๊ณ์ธต ๊ตฌ์กฐ ์ ํ์๋ทฐ ์ถ๊ฐํ๊ธฐ - addSubview() ์คํ ๋ฆฌ๋ณด๋์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ทฐ๋ฅผ ์บ๋ฒ์ค๋ก ๋์ด์์ ์์ฑํฉ๋๋ค. ๋ทฐ๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก๋ ์์ฑํ ์๋ ์์ต๋๋ค. ๋ทฐ๋ฅผ ์์ฑํ ๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ๋ทฐ์ ์ด๊ธฐ ํฌ๊ธฐ์ ์์น๋ฅผ ํฅํ ์ง์ ๋ superview๋ฅผ ๊ธฐ์ค์ผ๋ก ์ง์ ํฉ๋๋ค. ์๋ ์์ ์ฒ๋ผ ๋ทฐ๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ํด๋น ๋ทฐ์ ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ๊ฐ ์ถํ ์ค์ ๋ superview์์ขํ ์์คํ ์์ (10, 10) ์ง์ ์ ๋ฐฐ์น๋ฉ๋๋ค. let rect = CGRect(x: 10, y: 10, width: 100, height: 100) let myView = UIView(frame: rect) ์ ์ฝ๋ ์ฒ๋ผ ์์ฑํ ๋ทฐ๋ฅผ superview์ subview๋ก ์ถ๊ฐํ๋ ค๋ฉด addSubview(_:)๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํฉ.. 2023. 2. 14. [iOS] Xcode์ Target ์ด๋? iOS ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์์ฃผ ๋์ค๋ target์ด๋ผ๋ ์ฉ์ด์ ๋ํด ์ข ๋ ์์ธํ ๊ณต๋ถํ๊ณ ๊ฐ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๋ณดํต ์๋ ์ฌ์ง์ฒ๋ผ ์๋ก์ด ํ์ผ์ ์ถ๊ฐํ๊ฑฐ๋ ํ ๋ ๊ผญ target์ ์ ํํ๋ ๋ถ๋ถ์ด ๋์ค๋๋ฐ ๋ณดํต ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ์ด ๋์ด์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ค๋์ ์ด target์ ๋ฌด์์ธ์ง ํ ๋ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. (+ Group๋์ ์ด ํ์ผ์ ๋ฃ์ Group(ํด๋)๋ฅผ ์ ํํ๋ ๊ฒ์ด๊ณ ์ํ๋ ํด๋ํด๋ฆญ ํ ์ฐํด๋ฆญ ํ๋ค New File ๋๋ ์ ๊ฒฝ์ฐ์๋ ์๋์ผ๋ก ํด๋น ๊ทธ๋ฃน ์ ํ๋์ด์์) target์ ๋ฌด์์ผ๊น? target๊ณผ ๊ด๋ จํ์ฌ apple ๊ณต์ ๋ฌธ์์์ ์ ์ค๋ช ํด์ฃผ๊ณ ์๋๋ฐ ํด๋น ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ดํดํ ๋ด์ฉ์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค. target์ ์ฑ, ํ๋ ์์ํฌ, ์ฑ ํ์ฅ ํ๋ก๊ทธ๋จ ๋๋ ์ ๋ ํ ์คํธ.. 2023. 2. 13. [iOS] iOS Concurrency - 1. GCD/Operation, ๋๊ธฐ/๋น๋๊ธฐ, ์ง๋ ฌ/๋์ Inflearn: iOS Concurrency ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ ์ ๋ฆฌ 1. GCD/Operation์ ์์ 1) ์ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ด ํ์ํ ๊น? ์ฐ๋ ๋ : ์ผํ๋ ๋ ์๋ค : ์์ดํฐ 11ํ๋ก 6์ฝ์ด ( ์ผ์ํ๋ ๋ ์์ด 6๊ฐ๊ฐ ๋ฌ๋ ค์๋ค, ๋ช๊ฐ์ ์ฐ๋ ๋๊ฐ ์๋์ง๋ ์๋ ค์ง์ง ์์ ๋๋ต 12๊ฐ ์ด์ ์ ๋) ์์ดํฐ์ 16๋ฐ๋ฆฌ์ 1์ด๋ง๋ค ๊ต์ฅํ ๋น ๋ฅด๊ฒ ๋ฆฌํ๋ ์ฑ์ ํ๋๋ฐ ๊ทธ ์์ ์ ๋ฌด์ธ๊ฐ๊ฐ ๋ฐฉํดํ๊ณ ์์ด์ ์์์ฒ๋ผ ๋ฒ๋ฒ ์ด๋ ํ์ ๋ฐ์ํ๋ค! ์์ดํฐ์ ์ผํ๋ ๋ ์์ด ์ฌ๋ฟ์ธ๋ฐ ์ ๋ฒ๋ฒ ์๋๊ฐ? ๐ก → ํ๊ฐ์ ์ฐ๋ ๋์์๋ง ์ผ์ ์์ผฐ๊ธฐ ๋๋ฌธ์ ๋ฒ๋ฒ ์ธ ๊ฒ. cmd + 7 ๋๋ฅด๋ฉด ์์ฒ๋ผ ์ด๋ค ์ค๋ ๋๊ฐ ์ผํ๊ณ ์๋์ง ํ์ธ ๊ฐ๋ฅ ํ๋ก๊ทธ๋๋ฐ์ ์๋ชปํด์ ์ฐ์ฐ์ฐฎ๊ฒ ํ๋ฉด์ ๊ด๋ฆฌํ๋ ํ ๊ฐ์ ์ค๋ ๋๋ง ๊ณ์ ์ฌ์ฉํด์ ๋ฒ๋ฒ ์ด๊ฒ ๋จ ๊ทธ๋์์๋ ์ฐ๋ฆฌ๊ฐ.. 2023. 2. 11. [iOS] Rx์์ด ๊ตฌํํ๋ MVVM๊ธฐ์ด MVVM ํจํด์ ์ฌ์ฉํ์ฌ ์๋ฒ(API)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํ ์ด๋ธ ๋ทฐ์ ํ์ํ๋ ์์ ์๋ฒ์์ ์ง์ ๋ฐ์ดํฐ ๋ชฉ๋ก์ ๋ํ ๋ฆฌ์คํฐ์ค(response)๋ฅผ ์ ๊ณตํ์ฌ ์ด ๋ชฉ๋ก์ ํ ์ด๋ธ ๋ทฐ์ ํ์ํ๋ค. MVVM ๊ตฌ์ฑ ์์์ ๊ฐ์์ ์ญํ ๋ทฐ ์ปจํธ๋กค๋ฌ (View Controller): UI ๊ด๋ จ ์์ ๋ง ์ํํ๋ค. ์๋ฅผ ๋ค์ด ์ ๋ณด ํ์ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฑ์ ์์ ์ด ์๋ค. ๋ทฐ ์ปจํธ๋กค๋ฌ๋ ๋ทฐ ๋ ์ด์ด์ ์ผ๋ถ์ด๋ค. ๋ทฐ๋ชจ๋ธ (View Model): ๋ทฐ ์ปจํธ๋กค๋ฌ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์์ ํ๊ณ ์ด ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ ๋ค ๋ทฐ ์ปจํธ๋กค๋ฌ๋ก ๋ค์ ๋ณด๋ธ๋ค. ๋ชจ๋ธ (Model): MVC์์์ ๊ฐ์ ๋ชจ๋ธ์ด๋ค. ๋ทฐ๋ชจ๋ธ์ด ์ฌ์ฉํ๊ณ ๋ทฐ๋ชจ๋ธ์ด ์ ์ ๋ฐ์ดํธ ์ ๋ณด๋ฅผ ๋ณด๋ผ ๋๋ง๋ค ๋ชจ๋ธ๋ ์ ๋ฐ์ดํธํ๋ค. ์์ ๋์ ๋ฐฉ์ ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถ๋๋ฉด ๋ทฐ๋ ๋ทฐ ๋ชจ๋ธ์ ๋ํ ์ฐธ์กฐ๋ฅผ .. 2023. 2. 9. [iOS] UIButton.Configuration ์ฌ์ฉํด๋ณด๊ธฐ SNS ๋ก๊ทธ์ธ ๋ฒํผ์ ๋ง๋ค๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ์๋ค private let kakaoLoginButton = UIButton().then{ $0.setImage(UIImage(named: "img_logo_kakao"), for: .normal) $0.backgroundColor = UIColor.kakaoyellow $0.setTitle("์นด์นด์ค๋ก ๊ณ์ํ๊ธฐ", for: .normal) $0.setTitleColor(UIColor.snslogoblack, for: .normal) $0.titleLabel?.font = UIFont.hanSansBoldFont(ofSize: 16) $0.clipsToBounds = true $0.layer.cornerRadius = 10 } ์ ์ด๋ฏธ์ง์ ๊ธ์จ ์ฌ.. 2023. 2. 7. [iOS] ์ ํ๋ฆฐ์์ Xcode ์ปฌ๋ฌ์์ ๋ฐ๋ก ์ถ์ถ ์ ํ๋ฆฐ์์ ๋ง๋ค์ด ์ค swift UIColor Extension ์ฝ๋ ๊ธ์ด๋ค๊ฐ ํ๋ก์ ํธ์ ์ถ๊ฐํด์ฃผ๋ฉด ์์์ด ์ถ๊ฐ๋๋ค.! ํ์ง๋ง ์ฝ๋๋ง ์๊ณ ๋ฌด์จ ์์ธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ์ด๋ ต๋ค ๐ฅฒ ๋ฐ๋ผ์ ์๋์ฒ๋ผ ์์ ์นดํ๋ก๊ทธ์๋ Color Asset์ถ๊ฐํด์ ์์ ๋ฏธ๋ฆฌ ๋ณด๋ฉด์ ์ฐ๊ณ ์ถ๋ค๋ฉด ~!? ์ค๋ฅธ์ชฝ ์์ ์๋ Export ๋ฒํผ์ ๋๋ฌ์ค๋ค ! ์ถ๊ฐํ๊ณ ์ถ์ ํ๋ก์ ํธ์ .xcassets ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ณ Export ๋ฒํผ ๋๋ฌ์ฃผ๋ฉด ๋! ์ค๋ณด์์๋ ์ฌ์ฉํ ์ ์๊ฒ ๋๋น 2023. 2. 5. ์ด์ 1 2 3 ๋ค์