스위프트 (Swift): 메일 보내기 기능 (스토리보드)

Swift(스위프트) iOS 프로그래밍에서 버튼에 메일을 보내는 기능을 할당하는 예제입니다.   추가하고자 하는 뷰 컨트롤러에 다음을 import합니다 (윗부분에 작성). import MessageUI   아래 코드를 해당 뷰 컨트롤러의 extension으로 추가합니다. extension TargetViewController: MFMailComposeViewControllerDelegate { @IBAction func launchEmail(sender: UIButton) { // 1 guard MFMailComposeViewController.canSendMail() else { // 사용자의 메일 계정이 설정되어 있지 않아 더보기…

Swift(스위프트) 기초: struct (구조체; structures)

기본적으로 클래스와 유사하게 객체를 만들어 캡슐화하는 기능을 가지고 있습니다. 문법 및 사용법도 매우 유사합니다. Swift 기초 (4): 클래스, 옵셔널과 nil struct Person { var name: String var job: String var age: Int let person1 = Person(name: “aa”, job: “neet”, age: 12) print(person1)   주요 공통점은 다음과 같습니다. 값을 저장하기 위한 더보기…

Swift(스위프트): 텍스트 필드(UITextField)에 숫자만 입력되게 하기, 자리수 제한하기 (스토리보드)

텍스트 필드에서 숫자만 입력되게 하고, 특정 자리수 이상이 되면 키보드를 사라지게 하는 예제입니다.   1) 마우스 오른쪽 버튼을 누른채로, 또는 control 버튼을 누른채로 드래그하여 @IBOutlet 변수를 생성합니다. @IBOutlet weak var textFieldOutlet: UITextField!   2) 뷰 컨트롤러의 viewDidLoad() 안에 컨트롤러와 딜리게이트를 연결합니다. textA4FreqOutlet.delegate = self 또는 위의 과정 대신 스토리보드에서 텍스트 더보기…

Swift(스위프트): UITextField의 숫자 패드(Number Pad)에 완료 버튼 달기 (스토리보드)

텍스트 필드 (UITextField)를 스토리보드에서 숫자 패드(Number Pad)만 나오게 설정할 수 있습니다.   이 패드의 문제점은 아래 그림 완료(엔터) 버튼이 없다는 점입니다. 완료 버튼이 없으므로 추가 설정이 없다면 어떤 방법으로도 키보드를 사라지게 할 수 없습니다. 해결 방안으로 일정 자리수가 입력되면 숫자 패드를 사라지게 하기 숫자 패드 위에 [완료] 버튼 달기   더보기…

Swift(스위프트): 코어 데이터(Core Data) CRUD 기초 (UIKit에서)

Core Data란? Core Data를 통해 iOS, macOS 등의 애플리케이션 내에 오프라인으로 데이터를 저장할 수 있습니다. 다음은 Core Data의 소개글입니다. Core Data는 macOS 및 iOS 운영 체제에서 Apple이 제공하는 객체 그래프 및 지속성(persistence) 프레임워크입니다. 관계형 엔터티 속성 모델로 구성된 데이터를 XML, 바이너리 또는 SQLite 저장소로 직렬화할 수 있습니다. 엔터티 및 해당 더보기…

iOS 프로그래밍: 스크롤 뷰(Scroll View) 사용방법 (스토리보드)

1) 뷰 컨트롤러에 Scroll View 를 추가합니다.   2) 스크롤 뷰를 원하는 위치에 놓은 뒤 Add New Constraint로 상하좌우 제약(constraint)를 지정합니다. (빨간색 선 부분)   3) 제약을 지정하면 아래와 같이 빨간색 선이 나타납니다.   4) 스크롤 뷰 안에 뷰(View)를 추가합니다. 뷰가 스크롤 뷰 안에 위치해야 합니다.   5) View의 상하좌우 더보기…

iOS 앱 포트폴리오: 디퓨저 스틱 (Diffuser Stick) 애플 앱스토어 출시 📱- 디퓨저 스틱 교체주기 관리 앱

제가 만든 Diffuser Stick 이라는 앱이 애플 앱스토어에 출시되었습니다. DiffuserStick (디퓨저 스틱) 사용 도구 Swift, Xcode   앱스토어 링크 https://apps.apple.com/kr/app/diffuserstick/id1578285458 (모든 국가 출시)   깃허브 링크 https://github.com/ayaysir/iOS-DiffuserStick/   제작 시기 버전 1.0 – 2021.7.13 ~ 2021.7.27   특징 및 사용 기술 애플 앱스토어의 검수에 통과하였습니다. Core Data로 오프라인 데이터 관리 더보기…

Swift (스위프트): 사진 라이브러리, 카메라 사용 (스토리보드)

info.plist에서 권한 허용을 묻는 메시지를 설정합니다.   사진을 표시하고자 하는 뷰 컨트롤러 안에 이미지 피커 컨트톨러를 생성합니다. // 사진: 이미지 피커 컨트롤러 생성 let imagePickerController = UIImagePickerController()   viewDidLoad에 컨트롤러와 delegate를 연결합니다. 또한 앱을 최초로 실행했을 때 권한 허용 여부를 묻는 메시지를 출력하는 코드를 작성합니다. (import Photos 필요) override func 더보기…

Swift(스위프트): 피커뷰(Picker View)를 이용해 폰트(글꼴) 리스트 불러오기 (iOS, 스토리보드)

1) 스토리보드에 폰트를 선택할 피커뷰(picker view)와 미리보기 할 레이블을 배치합니다.   2) 다음 IB(InterfaceBuilder) Outlet 연결을 통해 컨트롤러에 UI 컴포넌트를 연결합니다. class SettingViewController: UIViewController { @IBOutlet weak var lblFontExample: UILabel! @IBOutlet weak var pkvAvailableFontList: UIPickerView! //….// }   3) 폰트 목록을 저장할 배열을 생성합니다. // 폰트 리스트의 이름들 저장 배열 더보기…

Swift(스위프트): 프로퍼티 리스트(property list; plist) 읽어오기

출처: Swift 5: How to read variables in plist files?   아래와 같은 plist(property list) 확장자의 파일이 있고 이 파일은 프로젝트의 루트 폴더에 있습니다. <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”> <plist version=”1.0″> <dict> <key>animals</key> <array> <dict> <key>name</key> <string>Tiger</string> <key>picture</key> <string>tiger_running</string> </dict> <dict> <key>name</key> <string>Jaguar</string> <key>picture</key> <string>jaguar_sleeping</string> 더보기…