modal ์ฐฝ ๋ค์ View ๋์ฐ๊ธฐ UIModalPresentationStyle ์ค .fullScreen ๊ณผ .currentContext ๋ฅผ ํตํด์ ํ๋ฉด ์ ๋๊น์ง ๋ฎ๋ ๋ชจ๋ฌ์ฐฝ์ ๊ตฌํํ์๋ค. ํ์ง๋ง drag down dismiss ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋๊น ๋ค์ ํ๋ฉด์ด ๊ฒ์์์ด ๋์๋ค. ์ฆ ์ ์ ์๋ View ๋ ์ฌ๋ผ์ง ์ํ์๋ค. ๊ทธ๋์ ์์๋ณด์๋ค. .fullScreen ๊ณผ .currentContext ๋ ๋ทฐ๊ฐ present ๋ ๋ ์ง์ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ์ ๋ทฐ๋ฅผ ์์ ๋ฒ๋ฆฐ๋ค. .overFullScreen ๊ณผ .overCurrentContext ๋ ๋ทฐ๋ฅผ ์ปจํ ์คํธ์์ ์์ ์ง ์๊ณ ์ ์งํ ์ํ์์ present ํ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ๋ทฐ์ alpah ๊ฐ์ ์กฐ์ ํ๋ฉด ๋ค์ ๋ทฐ๋ฅผ ๋น์น๊ฒ ๋ณด์ผ ์ ์๋ค. ํด๊ฒฐ ๋๋ alpha ๊ฐ์ 1..
UIAction closure based UIControl ์ถ์ฒใ ฃ iOS 14 + ) UIAction closure based UIControl @objc ์ addTarget ๋ง๊ณ ๋ UIControl ์์ฑ์๋ฅผ ํตํด์ ์ก์ ํจ์๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ์ต๋๋ค! UIButton ์ ๋ง๋ค๊ณ ํฐ์นํ ๋ ๋ง๋ค ํน์ ํ action ์ ํ๋ ์ฝ๋ override func viewDidLoad() { super.viewDidLoad() let button = UIButton(type: .custom) button.addTarget(self, action: #selector(buttonDidTap), for: .touchUpInside) } @objc func buttonDidTap() { print("touch") ..
์ ์ฅํ์ง ์๊ณ dismiss ํ ๋ ActionSheet ๋์ฐ๊ธฐ UIAdaptivePresentationControllerDelegate UIAdaptivePresentationControllerDelegate 4๊ฐ์ ๋ฉ์๋๊ฐ ์๋ค. func presentationControllerDidAttemptToDismiss(UIPresentationController) : Notifies the delegate that a user-initiated attempt to dismiss a view was prevented. func presentationControllerShouldDismiss(UIPresentationController) -> Bool : Asks the delegate for permissi..
modal ์ฐฝ์ผ๋ก ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ present ํ ๊ฒฝ์ฐ ์๋๋ก ์ธ์ด๋ด๋ฆฌ๋ฉด ์ฐฝ์ด ๋ซํ๋ค ํ์ง๋ง .fullScreen ์์ฑ์ ์ฃผ๊ฒ๋๋ฉด dismiss ๋ก ์ธ์ด๋ด๋ ค๋ ์ฐฝ์ด ๋ซํ์ง ์๋๋ค. fullScreen ํํ์ ํ๋ฉด์ ์ ์ค์ณ๋ฅผ ํ์ฉํด์ dismiss ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์. 1) Add addGestureRecognizer to View override func viewDidLoad() { super.viewDidLoad() view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(handleDismiss))) } 2) Create HandleDismiss Function @objc func handleDismiss(sender..
๋ค๋ฅธ ์คํ ๋ฆฌ๋ณด๋๋ก ํ๋ฉด์ ํ 1๊ฐ์ ์คํ ๋ฆฌ๋ณด๋์ 1๊ฐ์ ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ์กด์ฌํ๋ ๊ฒ์ด ์ด์์ ์ด๋ค๋ผ๊ณ ํด์ ๊ทธ๋ ๊ฒ ์งํํด๋ณด์๋ค. ํ์์๋ ๊ฐ์ ์คํ ๋ฆฌ๋ณด๋์ ์๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ identifier ๋ก ๊ตฌ๋ถํด์ ๊ฐ์ ธ์ฌ ์ ์์๋ค. ์ด ์ฌ์ง์ ์ฒจ๋ถํ ์ด์ ๋ ์ฝ๋๋ก TabBarController ๋ก ํ๋ฉด์ ํ ํ ๋ ์ฒซ๋ฒ์งธํญ์ผ๋ก ์ ํ์ ํด์ผํ๋์ง์ ๋ํ ๋ฌผ์์ด ์๊ฒจ์ ์ฒจ๋ถํ๋ค. ์ฝ๋์์ ํ์ธ ๊ฐ๋ฅํ๋ฏ์ด UITabBarController ์ ๋ทฐ์ปจ์ผ๋ก ํ๋ฉด ์ ํํ๋ฉด ๋๋ค. guard let nextVC = self.storyboard?.instantiateViewController(identifier: "TabBar") as? UITabBarController else { return } self.navigationContro..
- Algorithm
- UserDefaults
- Firebase
- watchOS
- MVVM
- github
- Notification
- WWDC22
- Objective-C
- RxCocoa
- Protocol
- async/await
- 2022 KAKAO TECH INTERNSHIP
- MOYA
- ์๋ฒํต์
- YPImagePicker
- Widget
- OpenSourceLibrary
- IOS
- configurable widget
- WWDC
- containerBackground
- APNS
- CloneCoding
- WidgetKit
- urlsession
- projectsetting
- SwiftUI
- rxswift
- Swift
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Total
- Today
- Yesterday