목록iOS (8)
개발콩블로그

안녕하세요!개발콩입니다. 오늘은 UILabel에서 특정 텍스트 변경하는 방법 대해서 소개하도록 하겠습니다. 어떤 상황에 필요할까?우리는 주로 사용자에게 UILabel에서 특정 text를 Bold처리 혹은 Highlight를 함으로써 많은 이점을 얻을 수 있습니다.가독성 향상 - 중요한 정보가 한눈에 들어온다빠른 정보 전달 - 시선을 끌어서 사용자에게 먼저 정보를 제공할 수 있다.이러한 UX적인 측면 향상을 위해서 많이 사용할 수 있는 방법인 것 같습니다. NSMutableAttributedString텍스트 일부에 대해 시각적 스타일, 하이퍼링크, 접근성 데이터 등의 속성을 변경할 수 있는 가변 문자열입니다. 사용방법guard let labelText = (UILabel).text else { re..

안녕하세요! 개발콩입니다.오늘은 MVC, MVP, MVVM 대한 간략한 정리와 제 생각을 정리하기 위해 게시글을 작성합니다. MVC Model데이터와 비즈니스 로직을 담당합니다.UI와 완전히 독립적으로 동작합니다. View사용자에게 보여지는 UI 요소입니다.사용자의 입력을 받습니다. ControllerModel과 View사이의 중재자 역할을 합니다.View로부터 사용자 입력을 받아 Model을 업데이트합니다.Model의 변경사항을 View에 반영합니다. 우리는 View의 속성과 입력, delegate, datasource, addtarget, 네트워크 통신을 모두 ViewController에 작성하는 경우가 많습니다.apple의 네이밍 ViewController에서 볼 수 있듯이 View와 Contro..

안녕하세요!개발콩입니다. 오늘은 Image Resize & DownSampling에 대해서 알아보도록 하겠습니다. iOS개발을 하면서 원본 사이즈가 큰 이미지를 표현하는 경우가 있었습니다.해당 이미지를 보여줄 때 많은 메모리가 할당되는 것을 확인했습니다.화면에 보여지는 이미지의 크기는 동일하지만 메모리가 많이 할당되는 것을 보며 최적화하는 방법을 찾고실제로 적용시킨 내용을 정리한 글 입니다. iOS에서 이미지가 차지하는 메모리이미지는 iOS에서 가장 많은 메모리를 차지하는 것들 중 하나입니다. 590KB의 filse size를 갖고 있는 이미지는2048 * 1536 * 4(Red, Green, Blue, Alpha) * 8(0-255) bit를 표현합니다.약 10MB를 차지하게 됩니다. iOS에..

안녕하세요!개발콩입니다. 오늘은 UICollectionView 동적 크기 Cell 만들기에 대해서 알아보도록 하겠습니다!! UICollectionView Cell을 동적 크기로 설정하는 방법에 대한 자료가 많이 없는 것 같습니다.사용법은 간단해서 공유해드리고자 이 글을 작성합니다! UICollectionView 동적 크기 Cell을 사용하는 예시 화면 우리는 위와 같이 글자 크기에 따라 Cell의 크기를 다르게 하고 싶은 경우가 있습니다.우리가 사용하는 방법은 UILabel은 자체적인 크기가 있기 때문에 이를 기준으로 Layout을 잡을 예정입니다! 동적 Cell 크기 적용하기CollectionView 설정하기private let colorCollectionView: UICollectionView..

안녕하세요!개발콩입니다. 오늘은 Hugging Priority, Compression Resistance Priority에 대해서 알아보도록 하겠습니다!! 먼저 이 두 개념이 왜 필요한지 알기 위해서는 intrinsicContentSize에 대해 먼저 이야기 하겠습니다. intrinsicContentSize란뷰 자체의 속성만을 고려하여 수신 뷰의 "natural size"를 나타냅니다.👉 뷰 자체의 속성만을 고려하여 레이아웃 시스템에 제공되는 뷰의 "고유 크기"를 정의하는 것 대표적으로 UILabel, UIButton, UISwitch, UITextField가 있습니다. 위의 4가지의 View는 width, height을 설정하지 않아도 intrinsicContentSize로 자동으로 설정되는 것..

안녕하세요!개발콩입니다. 오늘은 키보드에 따른 Layout 설정하기(Keyboard Layout Guide)에 대해서 알아보도록 하겠습니다!! 기존에는 Notification을 통해 키보드가 등장하고, 다시 내려갈 때마다 대응하는 방식으로 주로 이용했다고 합니다.하지만 요즘에는 시대가 정말 좋아진 것 같아요! 키보드에 따른 Layout을 설정해야 하는 이유아래와 같은 화면을 구성했다고 가정해봅시다. 우리 iPhone의 앱을 만들 때, 입력을 하게 되면 키보드가 올라오게됩니다.하지만, 키보드가 올라오는 것을 고려하지 않는다면위와 같이 사용자는 어떤 숫자를 입력했는지, 혹은 '시작하기' 버튼을 누르기 위해 빈 화면을 클릭하는 또 하나의 동작을 수행하게 됩니다. 하지만, 키보드의 움직임에 따라 숫자 UITe..

안녕하세요!개발콩입니다. 오늘은 뷰 컨트롤러 생명주기(View Controller Life Cycle)에 대해서 알아보도록 하겠습니다!! View Controller Life Cycle뷰 컨트롤러의 생명주기는 크게 다음과 같이 9개로 나뉠 수 있습니다. init()loadView()viewDidLoad()viewWillAppear()viewIsAppearing()viewDidAppear()viewWillDisappear()viewDidDisappear()deinit() init()뷰 컨트롤러의 지정 초기화 메서드입니다.뷰 컨트롤러가 초기화될 때 호출됩니다. loadView()뷰 컨트롤러의 뷰 계층 구조를 생성하거나 load하는 역할을 합니다.(주의) Interface Builder를 사용하여 뷰 컨..

안녕하세요!개발콩입니다. 오늘은 iOS 앱 생명주기 (App’s Life Cycle)에 대해서 알아보도록 하겠습니다!! 앱 생명주기를 왜 알아야 할까요??현재 상태에서는앱이 무엇을 할 수 있는지, 앱이 무엇을 할 수 없는지를 결정합니다. 예를 들어 foreground app은 사용자가 보고있는 화면으로 주목하고 있는 상태로,CPU를 포함한 시스템 리소스에 우선권을 가지게 됩니다. 반면에 background app은 화면에서 벗어나 있기 때문에 가능한 적은 작업만 수행하거나아예 아무 작업도 하지 않는 것이 좋습니다. 즉, 우리는 앱의 상태가 변경될 때마다 앱의 동작을 이에 맞게 조정해야하기 때문에 앱의 생명주기를 알아야 합니다! iOS 버전에 따른 생명주기 관리앱의 생명주기는 iOS 13이전과 iOS1..