Content Hugging Priority, Compression Resistance Priority Content Hugging Priority -> 우선순위가 높으면 크기가 intrinsic size보다 더 작아질 수 있음. 현재 라벨의 width는 정해주지 않은채 사이에 10의 constraint만 있고, Content Hugging Priority는 같은 상태 -> 오토레이아웃을 만족하기 위해 두 개의 뷰 중 하나의 뷰가 커져야하는데, 우선순위가 같으므로 빨간줄 Content Hugging Priority를 높이면 뷰가 커지지 않을 수 있음. 오른쪽 Label의 Hugging Priority를 1 높이면, 왼쪽 Label의 우선순위가 더 낮기 때문에 크기가 우선적으로 커져야함. 빨간줄이 없어지고..
스택뷰에 있는 객체 중 하나 hidden하면 알아서 공간을 채워줌. -> 카카오톡 프로필, 채팅목록 등에서 볼 수 있음. UserInteractionEnabled 뷰에 제스쳐를 넣었을 때 동작이 되지 않는 경우가 있음. 위에 보이는 User Interaction Enabled에 체크가 되어있지 않으면 interaction 불가능 -> 체크를 해주거나, 코드에서 isUserInteractionEnabled를 true로 해주면됨. tag 사용 여러 개의 탭 제스쳐를 하나의 액션에 연결할 때, tag를 이용하면 어떤 뷰인지 알 수 있음. view는 제스쳐가 붙어있는 뷰를 나타냄. 뷰가 이미지뷰였기때문에 view.image에 접근해보려했는데 잘안돼서 tag를 이용함. sender.view?.tag == 1 La..
메모리 메모리는 Code, Data, Heap, Stack으로 나눠져있으며, Heap을 사용하고 난 이후엔 메모리 해제 필수. -> 메모리 누수로 이어짐 참조 타입의 값들은 모두 Heap에 할당됨. 스위프트에선 ARC를 통해 힙에 할당된 메모리를 자동으로 해제해줌. 강한 참조, 약한 참조, 미소유 참조가 있음. 강한 참조는 인스턴스를 할당할때 참조 횟수가 1 증가하지만 약한 참조와 미소유 참조는 증가하지않음. 클래스 타입의 프로퍼티, 변수, 상수 등을 선언할 때 별도로 식별자를 명시하지 않으면 강한 참조 구조체와 클래스 구조체는 값 타입, 클래스는 참조 타입 구조체는 상속 불가 클래스의 인스턴스에서만 참조 횟수 계산이 가능함. 값 타입은 전달될 값이 복사되어 전달, 참조 타입은 값을 복사하지 않고 참조(..
이번엔 Image Rendering Mode에 대해 알아보았다. 최근에 새싹 실습을 진행하며 Button에서 이미지가 파란색으로 보이는 경험을 자주 했다. 나는 분명 버튼에 이미지를 제대로 넣었는데 왼쪽과 같이 파란색으로 나왔다. 오류를 해결하기 위해 알아낸 방법은 버튼의 type을 Custom으로 바꿔주는 방법이었다. 이는 Rendering Mode에 의한 결과인데, 공식문서에서 관련 글을 찾아보면 아래와 같은 설명이 나와있다. "The rendering mode controls how UIKit uses color information to display an image." "Rendering mode는 UIKit이 색상 정보를 이용하여 이미지를 보여주는 방법을 제어합니다." -> 해석이 완벽하지 않..
AutoLayout 실습 아래의 배달의 민족 첫 화면의 UI를 구성해봄. 윗부분의 오토레이아웃을 짜고보니 safeArea가 없는 기기에서는 원하는대로 나왔지만, SafeArea가 있는 기기에서는 빈 칸으로 나왔음. 이미 뷰 내의 레이아웃을 다 짜서 높이를 조절하면 내부를 전부 수정해줘야했음. 그래서 SuperView와 SafeArea사이에 뷰를 넣고, 위아래 constraint를 0으로 설정해서 해결. -> safearea가 없는 기기에서는 height가 0이므로 보이지않고, 있는 기기에서는 빈 칸을 메꿔줌. 오토레이아웃을 짜면서 뷰의 크기를 값으로 설정하는 경우가 많았음. 만약 하나의 기기만 생각한다면 상관없지만, 실제로는 다양한 기기가 쓰이기때문에 만약 뷰의 크기를 값으로 설정하고 프리뷰를 보면 위와..
- Total
- Today
- Yesterday