[storyboard] TableView 알아보기
·
iOS/UIKit
공식문서 A view that presents data using rows in a single column. ⇒ 단일 열에 배열된 행을 표시하는 뷰 단일 열에 수직 스크롤을 제공하는 콘텐츠 행을 표시 예를 들어 연락처 앱과 설정 앱이 있음 연락처 앱은 일반적인 TableView 를 표시하며, 설정 앱은 Group화 된 TableView를 표시 여러개의 행은 하나의 섹션으로 포함할수 있으며, 섹션은 헤더 와 푸터로 구성 구현해보기 1. Storyboard 에서 TableView와 TableViewCell 을 ViewController에 끌어다 놓자 2. 이렇게 끌어다 놓아 ViewController에 포함시키고 Cell에 대한 고유 값을 설정해 준다 3. cell을 선택한 상태로 오른쪽의 인스펙터 창에서..
[HIG] Collection
·
iOS/HIG
사진 세트와 같은 정렬된 콘텐츠 세트를 관리하고 커스텀 가능하고 시각적인 레이아웃으로 제공 컬렉션은 엄격하게 선형 형식을 시행하지 않기 때문에 크기가 다른 항목을 표시하는 데 적합 컬렉션은 이미지 기반 콘텐츠를 과시하는 데 이상적 배경과 같은 부수적인 뷰는 항목의 하위 집합을 시각적으로 구별하기 위해 선택적으로 구현 컬렉션은 상호 작용과 애니메이션을 모두 지원한다 기본적으로 탭하여 선택하고, 길게 터치하여 편집하고, 스와이프하여 스크롤할 수 있다 필요한 경우, 커스텀된 작업을 수행하기 위해 더 많은 제스처를 추가할 수 있다 컬렉션 내에서 항목을 삽입, 삭제 또는 재정렬할 때마다 애니메이션을 활성화할 수 있으며 커스텀 애니메이션도 지원한다 고려사항 행이나 그리드 레이아웃이 충분할 때 새로운 디자인을 만들지..
Delegate 와 DataSource
·
iOS/UIKit
TableView를 기준으로 설명 , (아마도) 동일한 프로토콜이 있다면 같은 기능을 수행할 것입니다. Delegate TableCell을 탭(클릭) 했을때 어떠한 기능을 수행하는 권한을 위임하는 프로토콜 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) func tableView(tableView: UITableView, willBeginEditingRowAtIndexPath indexPath: IndexPath) 외울필요? X 자동완성을 사용하자 ( 우리 신세대임..ㅋ ) 메서드의 인자만 봐도 어떤 기능을 수행 할 지 짐작이 가능하다 didSelectRowAtIndexPath → 이름부터가 선택 됐을..
[HIG] Tables
·
iOS/HIG
테이블은 데이터를 섹션이나 그룹으로 나눌 수 있는 행의 스크롤, 단일 열 목록으로 표시 일반적으로 테이블은 텍스트 기반 콘텐츠에 이상적이다 테이블 뷰는 일반적으로 3가지 스타일로 제공 - Plain, Group, inset Group Plain 행은 라벨이 지정된 섹션으로 분리될 수 있으며, 인덱스는 테이블의 오른쪽 가장자리를 따라 수직 표시 섹션의 첫 번째 항목 앞에 헤더가 나타날 수 있으며, 마지막 항목 뒤에 푸터가 나타남 Group 행은 그룹으로 표시 헤더 앞에 푸터가 뒤따를 수 있음 항상 적어도 하나의 그룹을 포함하며 각 그룹은 항상 적어도 하나의 행을 포함 그룹화된 테이블에는 인덱스가 포함되어 있지 않음 Inset Group 행은 모서리가 둥글고 부모 뷰의 가장자리에 삽입된 그룹으로 표시 항상 ..
[BOJ] 1918 - 후위 표기식
·
알고리즘/Swift
문제 풀이 코드 let inputs = readLine()! var stack = "" var answer = "" for op in inputs { switch op { case "(": stack.append(op) case ")": while !stack.isEmpty && stack.last != "("{ answer.append(stack.removeLast()) } stack.removeLast() case "*", "/": while !stack.isEmpty && (stack.last == "*" || stack.last == "/") { answer.append(stack.removeLast()) } stack.append(op) case "+", "-": while !stack.isEm..