iOS 프로그래밍: 색상 선택기(Color Picker; 컬러 피커)를 앱에 추가하기

원문 바로가기 안타깝게도 iOS용 색상 선택기는 내장되어 있지 않습니다. 주로 타사 라이브러리 또는 프로젝트를 사용합니다만, 가능한 경우 다른 라이브러리를 피하는 것이 좋습니다.   나만의 색상 선택기(Color Picker; 컬러 피커) 만들기 컬러 파커를 만들 수 있는 많은 방법이 있지만, 여기에 개요를 보여주는 단순한 예제가 있습니다. 스토리 보드를 다음과 같이 설정했습니다. 선택한 색상을 더보기…

Swift: JSON 스트링을 Swift 배열로 변환 (객체로 이루어진 배열의 JSON)

출처: 바로가기 변환 방법은 다음과 같습니다. JSON 스트링을 Swift 데이터로 변환 Codable을 상속받는 VO(DTO) 형태의 구조체(struct) 생성: JSON 원문을 보고 내부 객체를 참조해 생성합니다. JSON 디코더를 이용하여 사전(dictionary)으로 이루어진 배열로 변환 for문을 이용하여 정보 순회   import UIKit var str = """ [{"icon":"clock","regDate":"2020-02-24 19:35:16.0","id":1,"title":"ㄴㄴ"},{"icon":"clock","regDate":"2020-02-24 20:28:42.0","id":3,"title":"test_1582543722.22029"},] """ let json = str.data(using: .utf8) 더보기…

Swift: GET, POST 로 HTTP 네트워크 정보 주고받기

출처: 바로가기 Swift에서 GET, POST 로 HTTP 네트워크 정보 주고받기 GET으로 받아오기는 String(contentsOf: url!), POST로 전송은 URLSession.shared.dataTask(with: request){…}. 아래 코드는 Swift Playground에서 테스트 되었습니다. import UIKit // 메뉴 선택 let select = "delete" do { func sendPost(paramText: String, urlString: String) { // paramText를 데이터 형태로 변환 let paramData = paramText.data(using: .utf8) // 더보기…

iOS 프로그래밍: Navigation에서 전후간 정보교환 방법

Main(전)에서 Edit(후)로 정보를 넘기는 방법은 segue.destination을 이용, 후에서 전으로 넘기는 방법은 프로토콜을 정의한 다음 전 컨트롤러에서 그것을 상속받고, 전 컨트롤러가 후 컨트롤러로 정보를 넘기는 시점에 self를 후 컨트롤러의 delegate 변수에 담은 다음 거기서 delegate 관련 작업을 처리하도록 한다.   // // ViewController.swift // Navigation // // Created by yoonbumtae on 2020/02/14. 더보기…

iOS 프로그래밍: 간단한 웹뷰 앱 만들기

info.plist 편집 이 설정을 하지 않으면 웹사이트가 앱에 나타나지 않습니다.   스토리보드 작성 및 ViewController.swift 편집 // // ViewController.swift // WebMusic // // Created by yoonbumtae on 2020/02/14. // Copyright © 2020 BGSMM. All rights reserved. // import UIKit import WebKit class ViewController: UIViewController { @IBOutlet weak var wvMain: WKWebView! 더보기…

iOS 프로그래밍: PickerView 위임(delegate) 및 데이터소스(DataSource)

스토리보드 상에서 Delegate, DataSource 설정 또는 코드상에서 Delegate, DataSource 설정 @IBOutlet weak var pkvKeyList: UIPickerView! override func viewDidLoad() { pkvKeyList.delegate = self pkvKeyList.dataSource = self }   // PickerView Delegate // 열 개수를 설정 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } // 행의 개수 전달 func pickerView(_ 더보기…

Swift: DateFormatter 날짜 한글로 표기

DateFormatter에서 날짜를 한글로 표기하려면 로케일 설정을 변경합니다. let date = NSDate() // 현재 시간 가져오기 let formatter = DateFormatter() formatter.locale = Locale(identifier: "ko") // 로케일 변경 formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEEE" print("현재시간: " + formatter.string(from: date as Date)) 날짜 포맷표: https://ownstory.tistory.com/21

iOS 프로그래밍: 스토리보드에서 요소를 추가한 뒤 아웃렛 변수와 액션 함수로 연결하기

프로젝트 생성 File > New > Project > iOS > Single App View   User Interface에서 Storyboard를 선택합니다. 스토리보드는 주로 Main.storyboard에서 진행됩니다.     메인 스토리보드에 요소 추가 Xcode의 오른쪽 상단을 보면 + 버튼이 있습니다. 이것을 클릭하면 아래 화면이 나옵니다. Label과 Button, Image View를 스토리보드에 드래그해 요소들을 추가합니다. 요소들을 추가한 더보기…

Swift UI: iOS 앱 프로젝트 Swift UI로 시작하기 (Xcode)

 Swift Swift UI   새 프로젝트 만들기 File > New > Project > iOS > Single App View User Interface에서 SwiftUI를 선택합니다.   Swift UI에서 주요 내용은 ContentView.swift 에서 진행됩니다. 근거는 SceneDelegate.swift 에 있습니다.   ContentView.swift에서 아래 부분에 주요 내용이 들어갑니다. struct ContentView: View { var body: some View { 더보기…

Swift 기초 (8): 제네릭 타입 (Generic Type)

제네릭 타입 (Generic Type) 제네릭 타입이란 “타입을 파라미터화해서 컴파일시 구체적인 타입이 결정되도록 하는 것“이란 뜻으로 Swift에서도 제네릭 타입을 지원합니다. 주로 배열 같은 콜렉션 타입에서 사용됩니다. // EEItem: 임의로 설정한 이름으로 어떠한 타입도 받을 수 있음 func makeArray<EEItem>(repeating item: EEItem, numberOfTimes: Int) -> [EEItem] { var result = [EEItem]() // 배열의 더보기…