ios 24

[iOS] UIToolbar에서 UIBarButtonItem Alignment 조정하기, 양끝정렬로! programmatically

UIToolbar에서 UIBarButtonItem Alignment 조정하기 아래의 코드를 이용하여 배열에 공백을 주고싶은 부분에 추가하여 정렬하면 된다. let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) 결과 func createDatePicker() { dDayField.textAlignment = .center // toolbar let toolbar = UIToolbar() toolbar.sizeToFit() // done button let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: nil, actio..

[iOS] 다른 뷰컨의 함수 호출하기 : Call Another Viewcontroller's Function(NotificationCenter)

프로젝트 진행중 아기이름을 수정하는 기능 개발 중 다른 뷰컨의 함수를 호출하는 기능이 필요했다. 셋팅화면에서 babyName을 수정했을 때 발생하는 이벤트는 다음과 같다. 1) textField에 입력한 데이터 firestore에 update 2) 메인뷰컨의 아기이름 레이블에 firestore데이터 한번 더 조회 get 해서 업데이트해주기(변경된 아기이름 반영) iOS 이벤트 전달은 아래의 3가지로 구현할 수 있는데. - 컴플리션 블럭 클로저 - 프로토콜 델리게이트 - 노티피케이션센터 2)번 진행시 notificationCenter를 아래와 같이 활용하였다. 메인뷰컨 // import 아래에 상수로 이름 구현 let notificationName = "updateMainViewNotification" v..

[iOS] 설정화면 -> 설정 디테일 화면 구현 방법(tableView)

설정화면 구현시 궁금한 점 위 인스타그램 설정화면 처럼 1) 테이블뷰에서 이름설정, 생년월일 설정, 로그아웃 설정을 할 때, 해당 row 선택시 각 테이블뷰의 indexPath를 알아내서 서로 다른 뷰컨으로 보내는 것이 일반적인가? 2) 혹은 같은 뷰컨으로 보내지만, 하단의 내용만 달라지게 하는 것인가? => 일반적으로는 1)으로 화면마다 하나씩 뷰컨을 따로 만듬! + didSelectRowAt에서 선택한 indexPath 정보를 기반으로 다른 뷰컨으로 보내는 방법은 무엇인가? extension SettingViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexP..

[iOS] 기본 개념 정리 #8 : UITableVieCell, Cell.xib

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. Customizing Cells in a TableView using a .xib File View폴더에 생성한다 우측 클릭 - New File - Cocoa Touch Class - [subclass of] UITableViewCell Also create XIB file / Swift로 체크 및 설절하고 Targets에 프로젝트 체크 필수 Nib은 old name for the xib! UITableViewCell을 디자인 해보자 xib 파일에 라이브러리 - UIView 추가 인스펙터에서 백그라운드 변경 라이브러리 - Label 추가 라이브러리 - UiImageView 추가 label과 UiImageView 추가한 후 ho..

[iOS] 기본 개념 정리 #7 : Static Keyword / TableView / TableViewCell / UITableViewDataSource / UITableViewDelegate

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. Using a Constants File and Understanding the static Keyword String으로 만들면 오타를 만들기 쉽다. String으로 계속 타이핑하기보다 constant파일로 만들어서 코드로 타입하게 한다. swift 파일 만든다. struct Constants { } 아래처럼 stuct 내부에 static keyword를 만든다. static은 let을 constant데이터 타입으로 만들어줌 => Constants 객체를 만들어주는게 아니라 가져오는 것임 static let을 사용하면 struct 객체를 만들 필요가없이 바로 사용할 수 있다. 아래의 예시를 보자. static let을 선언해..

[iOS] 기본 개념 정리 #6 : Firebase/Auth 회원가입, 로그인, 로그아웃, 네비게이션바에서 back 버튼 없애기

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. Adding Firebase to your Project Firebase 로그인 대시보드에서 iOS 추가 설명대로 진행하면 됨. 단, podfile에서 내가 사용할 firebase를 찾아서 설치하기 Auth: 회원가입 로그인 기능 / Firestore 데이터베이스 설치 회원가입하고 파이어베이스로 보내서 확인하고 바로 채팅 뷰컨으로 보내기 로그인 가능할 경우 파이버에스에서 확이낳고 바로 채팅 뷰컨으로 보내기 회원가입 파이어베이스 대시보드 - authentification - 사용할 인증 체크온 create new user하기 레지스터 버튼 누르는 IBAction에 아래 코드 삽입 import Firebase / email과 pa..

[iOS] 기본 개념 정리 #5 : 네비게이션 스타일 Segue, 패키지매니저 CocoaPods, Podfile

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. 테이블 뷰와 세그웨이 테이블뷰 메일 앱, 문자메시지, vertically stacked cells 형태면 테이블뷰이다. 버튼 + 컨트롤 + 목적지 뷰컨에 놓으면 세그웨이 가능 모달로 세그웨이 하는게 아니라 네비게이션으로 하는 법? first view controller 즉 루트 뷰컨으로 누르고, 메뉴에서 에디터, 임베디드, 네비게이션 컨트롤러를 누르면 세그웨이가 네비게이션이 됨 Navigation은 팬케익 stack과 같음 register이 되면 챗으로 감 login이 되면 챗으로 감 register와 login이 성공해야 다음으로 세그웨이가된다. 로그인 -> 챗 / 회원가입 => 챗 : 둘다 세그웨이 identifier가 필..

[iOS] 기본 개념 정리 #4 : DarkMode, UITextFieldDelegate, Protocol, Delegate Design Pattern

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. DarkMode SF Symbols iOS 13 부터 다크모드가 사용가능하다 심볼이나 텍스트를 시스템 컬러로 사용하면 다크모드 사용이 가능하다. 만약 커스텀 컬러를 원한다면? Assets 에서 Color Set을 추가하고 라이트모드, 다크모드일 시에 컬러를 커스텀으로 설정가능 커스텀 컬러는 색상 선택 시 팔레트에 저장을 해야한다. vector이미지를 사용시 Assests에서 이미지 클릭 후 인스펙터에서 설정해줘야할 것 벡터이미지 사용시(PDF등) Preserve Vector 체크해주고 인스펙터에서 single scale로 설정 Appearance에서 Any, Light, Dark로 바꾸면 다크모드 라이트모드도 개별로 설정가능 ..

[iOS] 기본 개념 정리 #3 : Segues, Multi-Screens, MVC 적용, Adopting MVC Pattern, Optional Binding, Optional Chaining

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. Segues and Navigation for Multi-Screen Apps fie - new file - cocoa touch class 코코아터치 UIKit을 포함한 다른 라이브러리가 포함된 프레임워크 ResultViewController - UIViewController - Controller폴더에 생성 스토리보드 뷰컨의 인스펙터에서 ResultViewController 연결 그리고 해당 뷰컨에 IBOutlet / IBAction 만들기 스토리보드에서 뷰컨을 선택후 컨트롤 누르고 present modally로 목적지 뷰컨에 놓고 세그웨이 설정 가능함 transition타입 같은 것은 인스펙터에서 조절가능 세그의 iden..

[iOS] 기본 개념 정리 #2 : UISlider, Struct VS Class, ViewController

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. UISlider 스토리보드에 있는 UISlider의 Value를 UILabel을 이용해 수치 보여주는 법 예상 우선 IBAction으로 끌어와서 UISlider의 이벤트가 일어날 때마다 UILabel.text에 슬라이더의 value를 대입 시키면 되지않을까? 답 슬라이더 IBAction으로 선언, Event타입, Type은 UISlider로하여 더 정확한 데이터 타입으로 받아올 수 있게 한다. Any는 어떤 데이터타입이든 다 됨 sender는 해당 메소드를 호출하는 caller를 말함. 어떤 버튼 혹은 슬라이더가 불렀는지 func caller를 확인할 수 있음. 아래의 경우 UI슬라이더 이벤트발생시, 그 UISlider자체를 ..