본문 바로가기

iOS App development

(57)
076 ~ 080. Accessory View, Self Sizing and Custom Cell Accessory View // // AccessoryViewController.swift // TableViewPractice // // Created by Martin.Q on 2021/09/07. // import UIKit class AccessoryViewController: UIViewController { @IBOutlet var accTable: UITableView! @IBAction func editAction(_ sender: Any) { accTable.setEditing(!accTable.isEditing, animated: true) } override func viewDidLoad() { super.viewDidLoad() } } extension AccessoryViewCon..
070 ~ 075. Table View, Multi Section, Separator and Table View Cell Table View TableView는 목록을 표시할 때 사용한다. TableView에는 Cell이 존재하고, 위의 화면엔 표시한 것을 포함해 9개의 Cell이 존재한다. Cell의 너비는 TableView의 너비와 같고, 따라서 수평으로 두 개의 Cell을 나란히 배치할 수 없다. 또한 스크롤 방향은 상하로 고정이다. 별도로 가로 스크롤을 설정할 수는 있지만, 해당 기능을 더 간편하게 구현할 수 있는 CollectionView를 더 많이 사용한다. Cell들이 모여있는 그룹을 Sction이라고 한다. TableView는 하나 이상의 Section을 가질 수 있고, 각각의 Section에는 Cell이 포함되지 않을 수 있다. TableView는 Sextion과 Cell을 2차원 배열로 관리한다. 따라서 ..
062 ~ 069. Handling Date Date 날짜를 처리하는 다양한 자료형이 존재한다. Class Strcture NSDate NSCalendar NSDateComponents NSTimeZone NSLocale Date Calendat DateComponents TimeZone Locale 예전엔 클래스로만 제공했지만 현행 코코아터치프레임워크는 구조체로도 제공하고 있다. 또한 이러한 자료형들은 클래스 자료형의 이름에서 NS를 제외한 이름을 가지고 있다. 이 둘은 이름과 구현 방식만 다를 뿐, 사용법과 동작 방식은 동일하거나 유사하고, 대부분의 자료형들이 브릿징을 지원하기때문에 타입캐스팅을 활용해 자유롭게 전환할 수 있다. Date() 결과 "Aug 27, 2021 at 12:47 PM" Date 생성자를 사용하면 위와 같은 날짜를 얻을 ..
053 ~ 061. Software Keyboard, Text Delegate, Input View & Input Accessory View and Password Auto Fill Software Keyboard 캘린더에서 Location을 선택하면 오른쪽의 화면으로 전환됨과 동시에, 키보드를 조작하면 검색 필드에 입력할 수 있게끔 동작한다. 다른 뷰로 포커스를 전환하거나 종료하기 전까지 이벤트를 처리하게 되는데 이를 First Responder라고 부른다. // // FirstResponderViewController.swift // HandlingText // // Created by Martin.Q on 2021/08/24. // import UIKit class FirstResponderViewController: UIViewController { @IBOutlet weak var textField: UITextField! @IBAction func startAction(_..
043 ~ 052. Label, Text Field, Text View and Text Input Label SingleLine Label 사용하는 씬의 구성은 위와 같다. Label의 속성들은 위와 같다. Text Plain를 선택하면 일반적인 텍스트를 사용한다. Attributed를 선택하면 문자열에 속성을 추가할 수 있다.(Attributed String에서 이어진다) Color 텍스트의 색을 설정한다. Background Color와 비교하기 위해 Foreground Color라고 부르기도 한다. Font 폰트의 크기와 종류, 스타일을 변경할 수 있다. Alignment 텍스트의 정렬 속성이다. 기본값은 Netural인데 언어 설정에 따라 글의 정렬이 달라진다. // // SingleLabelViewController.swift // HandlingText // // Created by Mar..
036 ~ 042. Image and Color Image View 이미지는 종횡비가 중요하기 때문에 원본의 것을 유지하도록 Aspect Fit이나 Aspect Fill의 사용 빈도가 높다. 결과 Aspect Fill을 사용하면 오른쪽 사진처럼 Image View의 영역(프레임) 밖으로 나가는 부분이 생기는데 Drawing의 Clips to Bounds를 해제하면 프레임 밖의 영역에서도 이미지를 보이도록 허용할 수 있다. 다만 ImagaeView의 크기와 사용하려는 이미지의 크기는 맞춰 주는 것이 좋다. 이미지를 확대하거나 축소하는 프로세스가 빠지기 때문에 성능에도 긍정적인 영향을 미친다. Highlighted 속성에 별도의 이미지를 할당하면, Highlighted 상태가 될 경우 해당 이미지를 표시하게 된다. 조건에 따라 이미지를 변경해야 할 때 사..
026 ~ 035. Activity Indicator, Progress View, Stack View and Alert Controller Activity Indicator 작업 완료 시점을 정확히 알 수 없는 상태에서 작업이 진행 중이라는 피드백을 주기 위해 사용한다. 화면 구성은 위와 같다. Style iOS 13부턴 위에 존재하는 옵션을 사용한다. Activity Indicator의 크기를 Large와 Medium으로 변경할 수 있다. iOS 13 이전엔 아래에 존재하는 옵션을 사용했다. Activity Indicator의 스타일을 기본 크기의 흰색, 회색과 큰 크기의 흰색으로 설정할 수 있다. Color Activity Indicator의 색상을 변경할 수 있다. Animating 해당 옵션이 활성화되지 않았다면 직접 메서드를 호출해 애니메이션을 시작해야 한다. 활성화되어 있다면 표시되는 순간 자동으로 애니메이션이 시작된다. Hide..
020 ~ 025. Slider, Segment Control, Switch and Stepper Slider Default Slider Slider는 보통 0에서 1 사이의 값을 가지며, 기본 값은 그 중간인 0.5이다. 따라서 씬에 나타나는 Slider의 컨트롤러인 'thumb'는 중간에 위치한다. slider는 thumb을 움직여 값을 조절할 수 있고, 조절할 때마다 slider의 value 속성이 변화한다. value는 왼쪽으로 갈수록 작아지고, 오른쪽으로 갈수록 커지며, 양 끝에 도달하면 더 이상 진행하지 않는다. thumb이 이동할 때마다 valuChanged 이벤트가 전달되고 이는 target-action으로 처리한다. 목표는 각 slider를 통해 RGB값을 변경하고, 해당 RGB값으로 rootView의 backGroundColor를 설정한다. // // SliderViewControl..
014 ~ 019. Button, Picker and Page Control Target Action 007 ~ 013. View & Window (뷰와 윈도우)) 007 ~ 008 강의는 Xcode9 -> Xcode11 마이그레이션 강의로 따로 정리하지 않는다. View & Window Window(윈도우)와 View는 디바이스의 화면과 UI를 출력하고, 이벤트를 처리한다. 모든 앱은 적어도 하나 이상의 chillog.page 이전에 언급했던 UI 중에 Control에 해당하는 Button, Switch, Slider, Page Control, Date Picker, Segmented Control, Stepper의 공통된 기능은 모두 UIControl에 구현되어있다. Control은 각자 다양한 상태를 가지고 있고, 이를 시각적으로 표현하며, 다양한 이벤트를 전달하는데 이 이..
007 ~ 013. View & Window (뷰와 윈도우)) 007 ~ 008 강의는 Xcode9 -> Xcode11 마이그레이션 강의로 따로 정리하지 않는다. View & Window Window(윈도우)와 View는 디바이스의 화면과 UI를 출력하고, 이벤트를 처리한다. 모든 앱은 적어도 하나 이상의 윈도우를 가지고, 외부 디스플레이가 연결되면 두 개의 윈도우를 가진다. Window 터치 이벤트를 올바른 대상에 전달한다. 화면에 표시되는 뷰의 Controller 역할을 수행한다. interface builder를 사용하면 대부분의 과정이 자동으로 진행되지만, 그 외의 방식으로 구성하는 경우 윈도우를 직접 생성하고, 뷰를 직접 추가해야 한다. 새로운 화면으로 전환하는 경우, 윈도우에 추가되어있는 뷰를 다른 뷰로 대체하는 방식으로 진행한다. View 앱에서 시각적..