ios/Etc
-
UITableViewios/Etc 2022. 6. 3. 16:03
UITableView 단일 열 안에 행을 사용하여 데이터를 나타내는 view 수직 스크롤을 할 때 같은 형태가 반복되면서 내용은 달라지는 view 수직 스크롤만 가능하다. 테이블의 개별 항목을 구성한는 단위를 cell이라고 하며 타입은 UITaleViewCell이다. indexPath값을 통해 cell을 구분하며 여러 행은 하나의 섹션 안에 구성될 수 있고, 각 섹션은 header와 footer를 가질 수 있다. 또한 스크롤, 행 선택, 테이블 내용 편집, 행 추가 또는 제거 애니메이션과 같은 일반적인 동작을 처리하기 위한 내장 기능이 있다. UITableView를 왜, 언제 사용할까 UI가 반복되고, 데이터만 다른 경우 데이터가 많아 재사용이 필요한 경우 데이터가 가변적일 때, 동적할당이 가능하다. 메..
-
Optionalios/Etc 2022. 5. 27. 17:32
스위프트는 안전성을 매우 중요시하는 까다로운 언어이다. 이러한 안정성을 대표하는 중요한 요소 중 하나가 Optional이라는 개념이다. Optional은 Type casting이나 nil value(= null ) 체크 등에 있어서 중요한 역할을 한다. 옵셔널 값이 존재할 수도 있고 값이 존재하지 않을 수도 있다고 명시하는 것 래핑된 값이 존재하거나 값이 없다는 nil을 표현하는 형식 옵셔널로 정의한 변수와 그렇지 않은 변수는 서로 다른 타입이다. //옵셔널 변수를 정의할 때는 타입 어노테이션에 ?를 붙여야 한다. //옵셔널에 초깃값을 지정하지 않으면 기본값은 nil이다. var a:String? var b:String = "I'm b" //옵셔널 변수가 아니라면 nil을 할당할 수 없다. a = nil..
-
MVC/MVVMios/Etc 2022. 5. 27. 15:52
Design Patterns 2022.03.06 - [ios/Etc] - GoF Design Pattern MVC(Model - View - Controllers) MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴 간단한 쇼핑 리스트 앱이 있다고 해보자. 우리가 원하는 것은 이번 주에 사야할 각 항목의 이름, 개수, 가격의 목록이다. MVC 를 사용해 이 기능의 일부를 구현하는 방법을 아래에서 설명하겠다. (view: controller = n:1 구조) MVC 패턴의 구성 요소 모델(Model) 모델은 앱이 포함해야할 데이터가 무엇인지를 정의한다. 데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 알리며(따라서 필요한대로 화면을 ..
-
AutoLayoutios/Etc 2022. 5. 19. 19:09
AutoLayout Auto Layout은 뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 해당 뷰에 적용된 제약 조건에 따라 동적으로 계산한다. 예를 들어, 버튼이 이미지 view에서 수평으로 가운데에 놓이고 버튼의 위쪽 가장자리가 항상 이미지 아래쪽에서 8포인트 아래로 유지되도록 버튼을 제한할 수 있다. imageView의 크기나 위치가 변경되면 버튼의 위치가 자동으로 그에 맞게 조정된다. 외부 변경 사항 슈퍼뷰의 크기나 모양이 변경되면 외부 변경이 발생한다. 변경할 때마다 사용 가능한 공간을 최대한 활용하도록 view 계층 구조의 레이아웃을 업데이트해야 한다. 외부 변경의 몇 가지 일반적인 소스 사용자가 창 크기를 조정할 때(OS X). 사용자가 iPad(iOS)에서 Split View를 시작하거나 ..
-
Stroyboard Componentsios/Etc 2022. 5. 19. 17:44
스토리보드 스토리보드는 iOS 애플리케이션의 사용자 인터페이스를 시각적으로 표현한 것으로 콘텐츠 화면과 해당 화면 간의 연결을 보여준다. 스토리보드는 일련의 장면으로 구성되며, 각 장면은 viewController와 해당 View를 나타낸다. 장면은 두 viewController 간의 전환을 나타내는 segue로 연결된다. 스토리보드를 사용하면 하나의 캔버스에서 사용자 인터페이스의 모양과 흐름을 시각화할 수 있으므로 애플리케이션의 사용자 인터페이스를 디자인하는 데 권장되는 방법이다. Storyboard Object 1. Label: 임의의 텍스트 표시 설정 한 경계 사각형의 크기와 속성에 따라 텍스트를 축소, 줄 바꿈 또는 자를 수 있음. 텍스트의 글꼴, 텍스트 색상, 정렬, 강조 표시 및 음영을 제어 ..
-
Xcode 기능들과 AppProject 속성ios/Etc 2022. 5. 19. 15:38
프로젝트를 만들기 위해서 Create a new Xcode project 혹은 File > New > Project.. 를 누르면 이런 화면이 나온다. 프로젝트는 애플리케이션을 구성하는 데 필요한 파일 및 리소스를 제공해 주는 데 여러 OS와 템플릿 중 하나를 선택하여 프로젝트를 생성하여 애플리케이션을 제작한다. 프로젝트를 생성하면 기본 창이 나타난다. Toolbar 영역 작업용 도구들이 모여 있는 영역이다. 앱의 빌드와 실행, 시뮬레이터 설정이 있으며 프로젝트의 상태와 결과를 나타내준다. 툴바(Toolbar)를 표시하려면 View > Show Toolbar를 선택하면 된다. 툴바 오른쪽에 있는 Show/hide areas을 사용하여 메인 창의 다른 영역을 표시하고 숨길 수 있다. Library 버튼 이..
-
Info.plistios/Etc 2022. 5. 18. 20:03
plist(속성 목록)은 응용 프로그램 데이터를 저장하기 위한 유연하고 편리한 형식이다. 원래 iPhone 장치에서 사용하고 나중에 다른 응용 프로그램으로 확산하기 위해 Apple에서 정의했다. plist는 XML 파일이므로 간단한 텍스트 편집기를 사용하여 번역할 수 있다. 그러나 잘못된 위치에 한 문자라도 있으면 파일을 사용할 수 없게 된다. Info.plist란 무엇인가? Information Property List(정보 속성 목록) 번들을 식별하고 구성하는 키-값 쌍을 포함하는 리소스 앱이 시스템에 메타데이터를 제공하는 방법(사용자에게 더 나은 경험을 제공하기 위해 iOS 및 macOS는 각 앱 또는 번들에 있는 특수 메타데이터에 의존한다.) Info.plist의 속성 UIKit Applicati..
-
@escapingios/Etc 2022. 5. 14. 16:51
@escaping escaping은 탈출 클로저로 함수을 말한다. 함수가 반환된 후 실행 되는 것을 의미한다. 클로저의 escaping은 A 함수가 마무리된 상태에서만 B 함수가 실행되도록 함수를 작성할 수 있다는 점에서 유용하다. 클로저 인자를 함수 밖에서도 연장(Outlive)이 필요할 때 사용한다. 공모전에 나가서 네트워크 통신을 위해 Alamofire 라이브러리를 사용했을 때 동기와 비동기 문제로 고민했던 경험을 예로 설명을 하자면 지금은 지워서 기억이 나지 않지만 이 전에 작성했던 코드에서 실행 순서를 보장 받지 않아서 서버의 응답 값과 View 전환이 엇박자를 타서 애를 먹었던 적이 있다. 아직 개념이 부족했던 터라 Lifecycle의 문제인 줄 알고 삽질을 했었는데, 결국 많은 검색 끝에 A..