ios 27

[iOS] 콘텐츠 뷰 컨트롤러, 컨테이너 뷰 컨트롤러

콘텐츠 뷰 컨트롤러콘텐츠 뷰 컨트롤러는 이미지나 텍스트, HTML페이지 등 앱의 화면에 표현할 콘텐츠를 관리하는 컨트롤러입니다. 이를 위해 콘텐츠 뷰 컨트롤러는 화면 전체 사이즈의 루트 뷰를 내장하고 있으며, 이 뷰 위에 각종 콘텐츠를 얹어 화면에 출력합니다. 뷰 컨트롤러를 정의하는 기본 클래스는 UiViewController입니다. UiViewController를 상속받아 새로운 커스텀 뷰 컨트롤러를 정의하고, 스토리보드에 구현된 화면과 연결합니다. 이 때 커스텀 뷰 컨트롤러에 작성한 커스텀 코드는 스토리보드의 화면을 제어하여 우리가 원하는 대로 앱이 동작할 수 있도록 해줍니다. 커스텀 뷰 컨트롤러를 정의할 때에는 기본 화면 구조를 어떻게 설계할 것인가에 따라 상속받을 부모 클래스를 상황에 맞게 적절히..

iOS 2018.04.26

[iOS] 뷰 - Frame, Bounds 속성

frameframe속성은 뷰 자신의 위치나 크기 등 영역을 설정하는 경우에 사용합니다. (frame의 좌표 기준은 슈퍼 뷰입니다.) boundsbounds속성은 뷰의 내부에 있는 객체와의 관계에서 사용합니다. (bounds의 좌표 기준은 자기 자신입니다.) 주로 뷰 내부에 서브 뷰를 추가하기 위해 (0,0)의 원점 좌표가 필요할 때, 혹은 뷰 내에서 터치 이벤트가 발생한 위치를 판별해야 할 때 사용합니다. 정리 슈퍼 뷰가 서브 뷰에게 제공하는 좌표는 bounds 속성의 좌표이고, 서브 뷰는 이 좌표를 기준으로 자신의 frame속성을 설정하는 것. 참고 : 꼼꼼한 재은씨의 스위프트 실전편잘못된 부분 있으면 댓글 남겨주시면 감사하겠습니다.

iOS 2018.04.26

[Swift] Inheritance- final 키워드

Inheritance - Preventing Overrides(오버라이드 방지)Swift에서 final키워드를 사용하면 메소드, 프로퍼티, 서브스크립트가 오버라이드를 금지할 수 있습니다. 주로 재정의할 필요가 없을 때 final을 사용하는 것이 좋습니다. 참고로 클래스 자체가 상속되는 것을 막을려고 할 때에도 final을 사용할 수 있습니다. (final 클래스를 상속받으려는 클래스는 컴파일 시 에러가 발생합니다.)

Swift 2018.04.25

[Swift] map, filter, reduce

Swift의 표준 배열 라이브러리는 map, filter, reduce라는 세 가지 기능을 제공합니다. map 클로저로 각 항목들을 반영한 결과물을 가진 새로운 배열을 반환합니다. Declaration Parameters transform으로 넘기는 것은 클로저는 변경된 값을 반환하기 위해 해당 타입의 값을 반환합니다. Return Value 변환 된 요소를 포함한 배열 반환 사용 filter 클로저로 각 항목들을 비교하여 일치하는 결과물을 가진 새로운 배열을 반환합니다. Declaration Parameters isIncluded를 지원하는 클로저는 항목이 포함되는지(true) 또는 제외되는지(false) boolean값을 반환합니다. Return Value 변환 된 요소를 포함한 배열 반환 사용 re..

Swift 2018.04.17

[iOS] Label - 줄바꿈 속성(Line Break Option)

Character Wrap개별 문자 단위로 줄바꿈합니다. 하나의 단어가 완전히 끝나지 않았어도 라인의 끝에 도착하면 다음 라인으로 줄을 바꾸어 나머지 문자를 계속 출력합니다. 물론 Line 속성에서 설정된 라인 수를 넘어서면 나머지 텍스트는 표시하지 않습니다. Word WrapCharacter Wrap과 비슷하지만, 개별 문자가 아니라 단어 기준으로 줄바꿈합니다. 즉, 단어 중간을 끊어 줄바꿈하지 않는다는 뜻입니다. 이 때문에 단어 전체가 들어갈 공간이 충분하지 않으면 남은 공간이 있더라도 다음 라인으로 줄바꿈하는 특성이 있습니다. Truncate Head콘텐츠 출력에 필요한 라인 수보다 레이블에 설정된 Line 속성이 적을 경우, 마지막 라인의 첫 머리 텍스트 일부를 말줄임표로 처리합니다.즉, 앞부분을..

iOS 2018.04.15

[Swift] 접근 제어(Access Control) - 정의

접근 제어는 다른 소스 파일 및 모듈의 코드에서 코드의 일부에 대한 접근을 제한합니다. 이 기능을 사용하면 코드의 구현한 세부 사항을 숨기고, 해당 코드를 접근하고 사용할 수 있는 인터페이스를 지정할 수 있습니다. 각각의 타입(클래스, 구조체, 열거형)뿐만 아니라 프로퍼티, 메소드, 초기화, 서브스크립트에 대해 접근 레벨을 지정할 수 있습니다. 프로토콜은 전역 상수, 변수 및 함수처럼 특정 컨텍스트로 제한 될 수 있습니다. Swift는 다양한 수준의 접근 이외에도 일반적인 시나리오에 대한 기본 접근 수준을 제공함으로써, 명시적 접근 제어 수준을 지정하지 않아도됩니다. Note : 접근 제어를 적용할 수 코드(프로퍼티, 타입, 함수 등)의 다양한 측면을 간결하게 하기 위해 아래에서 "엔티티"라고 언급합니다.

Swift 2018.04.10

[iOS] 뷰 컨트롤러 생명주기 (ViewController Lifecycle)

# 뷰의 상태 변화 메소드뷰가 나타나거나 사라지는 등 뷰가 화면에 보이는 상태가 변화할때 호출되는 메서드입니다. 각 메서드가 호출 될때의 시점과 수행하면 좋은 작업을 확인해보세요. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메서드뷰의 추가적인 초기화 작업을 하기 좋은 시점메모리에 처음 로딩 될때 1회 호출되는 메서드로, 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않음func viewWillAppear(_ animated: Bool)뷰가 뷰 계층에 추가되고 화면이 표시되기 직전에 호출되는 메서드뷰의 추가적인 초기화 작업을 하기 좋은 시점다른 뷰로 이동했다가 되돌아오면 재호출되는 메서드로, 화면이 나타날때마다 수행해야하는 작업을 하기 좋은 시점func viewDid..

iOS 2018.04.06