Swift/UIKit

Swift/UIKit

[UIKit] viewDidLayoutSubviews란?

뷰의 서브 뷰가 레이아웃 될때 호출하는 메서드. 주로 레이아웃과 관련된 코드를 여기서 작성하게 된다. 일반적인 생성주기 메서드 (viewDidLoad, viewwillDisppear 등등)와는 달리 뷰의 레이아웃이 변경 될때마다 호출된다. 이 특성 덕에 imageView 혹은 UIView의 cornerRadius를 frame에 맞게 수정하고자 하는 경우에 사용할 수 있다.

Swift/UIKit

[UIKit] NavigationController에서 push 할때 버벅이는 문제

원인 새롭게 push 되는 ViewController의 배경색이 정해져 있지 않기 때문이다. 해결 ViewController에 배경색을 지정해 주면 된다. 예전에 몇번 겪었던 거 같은데 오랜만에 경험한다. 이전에는 View를 대충 그리고 데이터를 연동하는 방식으로 방식으로 했기 때문에 그랬던 거 같다.

Swift/UIKit

KeyChain의 SecItemAdd(_:_:) 에러 조회하기

Apple은 왜 개발자 UX는 생각 안 하지? Apple Document 왜 이렇게 하는지 잘 이해가 안 갈 때가 많다. 아래와 같이 조건문으로 처리하면 원하는 에러 코드를 번역해서 문자로 조회가 가능하다. let status = SecItemAdd(query as CFDictionary, nil) if status == errSecSuccess { print("Successfully added to keychain.") } else { if let error: String = SecCopyErrorMessageString(status, nil) as String? { print(error) } } ref https://stackoverflow.com/questions/34051482/secitemadd..

Swift/UIKit

Delegate 패턴이란?

delegate는 대표, 위임자를 뜻하는 단어입니다. 델리게이트 패턴이란 하나의 객체가 모든 해야 할 일을 모두 정의하고 처리하는 것이 아니라 특정 행동에 대해서는 그것만을 전담하는 객체에게 일을 넘기는 것을 말합니다. 생산성 향상을 위해서 도입하는 패턴이라고 보시면 될 듯합니다. 상속만큼 강력한 재사용성을 보여주기도 하는 패턴으로 GUI 환경에서 많이 쓰입니다. 대표적으로 이벤트 리스너(Event Listener)에서 사용되고 있고 이미 우리는 이 패턴에 따라 생성된 함수들(onClick() 같은)을 호출해서 코드를 작성하고 있습니다. iOS 개발(UIKit)에서도 예외가 아닙니다. 그래서 어떻게 사용할까요? 1. 원하는 객체의 뒤에 Delegate를 붙여 프로토콜을 선언합니다. 때로는 이 단계에서 무..

Swift/UIKit

[UIKit] 스토리보드로 Cell에 올린 Label이 좌측상단으로 정렬되지 않는 문제

문제 상황 스토리보드를 통해 구현한 CollectionView에 Cell이 존재하고 해당 Cell 안에 Label을 배치하여 좌측 상단부터 텍스트가 여러 줄로 출력되도록 처리하고 싶었다. 하지만 정상적으로 좌측 상단부터 우측 하단 방향으로 출력되지 않았고 셀의 범위를 초과하여 한 줄로 출력이 되는 상황이었다. 해결 1. Lines를 0으로 설정하기. 0으로 설정함으로서 줄의 최대 개수를 강제하지 않고 글자 수에 따라 유동적으로 줄 수가 정해진다. 2. Alignment를 왼쪽 정렬로 설정 3. Truncate Tail을 설정. 이 설정은 주어지는 문자열이 화면 범위를 초과하여 존재할 떄 말줄임표 "....."를 어떻게 표현할 것인지에 대한 설정이다. Tail 값으로 설정하면 "abcde...."의 형식으..

devKen
'Swift/UIKit' 카테고리의 글 목록