๐ iOS/UIKit
[iOS] Completion Handler์ ์ด์ฉํ Loading Progress ๊ตฌํ
GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS. A beautiful and easy-to-use progress HUD for your iOS. - GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS. github.com KRProgressHUD๋ฅผ ์ด์ฉํ์ฌ Loading Progress๋ฅผ ๊ตฌํํด๋ณด์. ์ด์ pod init - pod '์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ' - pod install์ ๋ฃจํด์ ์๋ฒฝ ์ ์ ^-^v Completion handler๋ ์ด๋ ํ ์ผ์ด ๋๋ฌ์ ๋ ์งํํ ์ ๋ฌด๋ฅผ ๋ด๋นํ..
[iOS] WebKit View | ์ฑ์์ Web ํ์ด์ง ์ด๊ธฐ
์ด๊ณ ์ถ์ ์นํ์ด์ง์ URL๋ง ์๊ณ ์๋ค๋ฉด ์ฑ์์ ๋ฐ๋ก ํด๋น ์นํ์ด์ง๋ฅผ ์ด ์ ์๋ค! ๋จผ์ , storyboard์ WebKit View๋ฅผ ์ถ๊ฐํ๋ค. Web View๋ deprecated ๋์๋ค๊ณ ํ๋ค. (old version) Webkit์ ์ฌ์ฉํ๊ธฐ ์ํด ํด๋น ์คํ ๋ฆฌ๋ณด๋์ ์ฐ๊ฒฐ๋๋ ๋ทฐ ์ปจํธ๋กค๋ฌ์ WebKit ํ๋ ์์ํฌ๋ฅผ import ํด์ค๋ค. import WebKit ๋ค์ด๋ฒ๋ฅผ ์ด๊ธฐ ์ํด ๋ค์ด๋ฒ์ ์ฃผ์๋ฅผ url์ ๋ฃ์ด์ค๋ค. import UIKit import WebKit class ViewController: UIViewController { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let ..
[iOS] Splash Screen(์คํ๋์ ์คํฌ๋ฆฐ) ๊ตฌํํ๊ธฐ | Lottie Animation
์ค๋์ Splash Screen์ Animation์ผ๋ก ๊ตฌํํด๋ณผ ์์ Splash Screen์ Launch Screen(๋ฐ์น์คํฌ๋ฆฐ)์ด๋ผ๊ณ ๋ ํ๋ค. (= ์ฑ์ ์์ํ ๋ ์ฑ์ด ๋ก๋ฉ๋๋ ๋์ ๋น ํ์ด์ง๋ง ๋ ธ์ถ๋์ง ์๋๋ก 1~5์ด ๊ฐ ๋ด๋ค๊ฐ ์ฌ๋ผ์ง๋ ํ๋ฉด) ๋ทํ๋ฆญ์ค์ ์คํ๋์ฌ ํ๋ฉด ๋์์ด๋ ์์ด ํผ์์ ์ด๋ป๊ฒ ์ ๋๋ฉ์ด์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ ์คํ๋์ฌ ํ๋ฉด์ ๊ตฌํํ ๊น? Lottie๋ฅผ ์ด์ฉํ๋ฉด ํ ์ ์๋ค ! ์.... Lottie๊ฐ ๋ญ์..? Lottie๋ Airbnb ์์ ์ ๊ณตํ๋ ๋ชจ๋ฐ์ผ ์ ๋๋ฉ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. https://lottiefiles.com์์ ์ฌ๋ฌ ๋ชจ๋ฐ์ผ์ฉ ์ ๋๋ฉ์ด์ ์ ํ์ธํ ์ ์๋๋ฐ, ์ด๋ ๊ฒ Free Animations๋ ์๋ค ใ ใ ๋ค์ด๊ฐ๋ฉด ์ค๋ฅธ์ชฝ ํ๋ฉด์ฒ๋ผ ๋์์ด๋๋ถ๋ค๊ป์ ์ฌ๋ ค์ฃผ์ ๋ค์ํ ๋ชจ..
[iOS][UI] Label: Number of Lines
Label > Number of Lines๋ฅผ 0์ผ๋ก ์ค์ ํ๋ฉด Label์ ํฌ๊ธฐ๋งํผ ๋ผ์ธ ๊ฐ์๊ฐ ๋์ด๋๋ค.
[iOS][m1] Xcode Playground output์ด ์๋ณด์ผ ๊ฒฝ์ฐ
m1 ์ ์ ์ผ ๊ฒฝ์ฐ xcode๋ฅผ Rosetta๋ก ์ด์ด ์ฌ์ฉํ๋ฉด Playground output์ด ์๋ณด์ด๋ ์ ๋ณด๊ฐ์ ธ์ค๊ธฐ>Rosetta๋ก ์ด๊ธฐ๋ฅผ ํด์ ํด์ฃผ๋ฉด ๋๋ค.
[iOS] IBAction๊ณผ IBOutlet, ์ฐ๊ฒฐ ํ ์ญ์ ์ ์ฃผ์ํ ์
Outlet: code์์ storyboard๋ก object๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ Actions: storyboard์ controls์์ swift code๋ก ์ฐ๊ฒฐ์ํค๋ ๊ฒ IBOutlet: ์คํ ๋ฆฌ๋ณด๋ ์์ ์ ์ธํ ๊ฐ์ฒด(View, Label ...)๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์ IBAction: ์คํ ๋ฆฌ๋ณด๋ ์ ์ ์ธํ ๊ฐ์ฒด๊ฐ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ํธ์ถ๋๋ ํจ์ object๋ฅผ ํด๋ฆญํ๊ณ control ํค๋ฅผ ๋๋ฅด๊ณ ๋ง์ฐ์ค๋ก Assistant code์ ๋๋๊ทธ์ค๋๋กญ์ผ๋ก ์ฐ๊ฒฐ์์ผ์ฃผ๋ฉด ๋๋ค. ๋ณดํต viewDidLoad()๋ฅผ ๊ธฐ์ค์ผ๋ก IBOutlet์ ์์, IBAction์ ์๋์ ์ฐ๊ฒฐ์์ผ์ค๋ค. // ๋ฒํผ์ ๋๋ฅด๋ฉด Label ํ ์คํธ๊ฐ ๋ณ๊ฒฝ๋๊ฒ IBAction์ Button์ ์ฐ๊ฒฐํด๋์๋ค. IBAction ์ญ์ ์ ์ฃผ์ํ ์ ์ฐ..
[iOS] storyboard์ ์ถ๊ฐ๋ view๊ฐ ์ด๋ ์๋์ง ์๋ณด์ผ ๋
view object๋ฅผ storyboard์ ์ถ๊ฐํ๋ ๋ฐ ๋ฐฐ๊ฒฝ๊ณผ object ์์์ด ๊ฐ์์ ๋ณด์ด์ง ์์ ๋ ์ค๋ฅธ์ชฝ์ฒ๋ผ ํ์ํด์ค ์ ์๋ ์ ์ฉํ ํ Editor > Canvas > Bounds Rectangles โ
[iOS] ๊ณต์ ํ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ iPhone/iPad
var sharedObject = [Any]() sharedObject.append(image) // image = ๊ณต์ ํ ๋ ๋ณด๋ด๊ณ ์ถ์ ์ด๋ฏธ์ง let random = Int.random(in: 0...(sharedText.count - 1)) sharedObject.append(sharedText[random] + "\n\n๊ณต์ ํ ๋ ํจ๊ป ๋ณด๋ด๊ณ ์ถ์ ๋ฌธ์ฅ") let vc = UIActivityViewController(activityItems: sharedObject, applicationActivities: nil) vc.popoverPresentationController?.permittedArrowDirections = [] vc.popoverPresentationController?.sour..