[iOS] Gradient Layer 적용 시 View가 잘리는 현상
2022. 2. 4. 17:03
iOS
현재 소켓통신을 이용하여 채팅방을 구현중이다. 채팅창은 테이블 뷰를 통해 구현했고 채팅이 아래서 위로 올라가는 구조이다. 채팅창의 최상단은 블러처리된다. 블러처리를 위해 테이블뷰의 SupeView에 Gradient Layer을 추가해줬다. 그런데 영상과 같이 채팅창의 하단부분이 잘려서 나오는 문제가 발생했다. 이것 때문에 꽤 많은 시간을 삽질했다. 일단 나는 XIB파일을 이용해 CustomView를 만들어 ViewController위에 올려줬다. 사진의 가장 하단을 보면 iPhone SE 버전으로 UI를 구성한것을 확인할 수 있다. 그런데 정작 실행은 iPhone 11로 실행했다. iPhone SE로 실행하면 채팅창 하단이 잘리는 현상은 사라진다. 즉, 내가 Xib파일을 이용해 UI를 구성한 시점에 fr..
[iOS] SnapKit 노치 유무에 따른 오토레이아웃 설정
2022. 2. 4. 16:15
iOS
SnapKit을 사용해 AutoLayout을 설정할 때 주의해야 할 점이 있다. 노치의 유무에 따라 SafeArea가 존재하는데 childView.snp.makeConstraints { $0.left.bottom.right.equalToSuperView() $0.height.equalTo(300) } 위와 같이 레이아웃을 설정했다면 전체 뷰를 기준으로 레이아웃이 잡히게 된다. 어떤 기준으로 개발하느냐의 차이겠지만 만약 SafeArea를 기준으로 레이아웃을 잡고 싶다면 Swift에서 제공하는 safeAreaLayoutGuide를 기준으로 오토레이아웃을 잡아주면 된다. childView.snp.makeConstraints { $0.left.bottom.right.equalTo(view.safeAreaLayo..
[iOS] Hugging priority 와 Compression Resistance priority
2021. 10. 20. 23:41
iOS
iOS에서 사용되는 Hugging priority와 Comperssion Resistance priority에 대해 알아보자. 본격적으로 알아보기에 앞서 이것만 기억하고 가자. priority = 우선순위, 우선순위가 높으면 내 크기 유지 이것만 기억하면 헷갈리지 않고 쉽게 이해하고 머리속에 들어갈 것이다. Hugging priority 공간이 남을 경우 무엇이 더 커질지 우선순위를 정한다. (커져야 할 경우, 빈 공간을 채워야 할 경우) 빨간색은 우선순위가 251, 파란색은 우선순위가 250이다. 우선순위가 높은 빨간색은 형태를 유지한 채 여백을 우선순위가 낮은 파란색으로 채운다. 우선순위가 뒤바뀐 경우에는 위 그림과 같은 결과가 나온다. Compression Resistance priority 공간이..
[iOS] 뷰컨트롤러 생명주기(ViewController Life-Cycle)
2021. 10. 13. 16:20
iOS
ViewController Life-Cycle init 스토리보드를 통해 뷰 컨트롤러를 생성할 경우 뷰 컨트롤러의 객체가 생성될 때 초기화 작업을 하는 메서드 공식문서에서는 self.init() 같은 방법으로 직접 호출하면 안 된다고 명시하고 있다. 추가적으로 뷰의 추가적인 초기화는 viewDidLoad() 메서드에서 수행하라고 한다. 오버 라이딩은 가능하다. loadView 뷰 컨트롤러가 자신의 뷰, 그러니까 흔히 self.view처럼 접근하는 그 뷰 컨트롤러의 메인 뷰를 로드할 때 호출되는 메서드이다. 즉, 그 메인뷰를 생성하려고 호출하는 메서드이다. 그래서 이 메서드 안에서 새로운 뷰를 만들어서 반환해줘도 된다. 하나 스토리보드를 쓴다면 어차피 스토리보드에 있는 뷰를 가져와 사용하기 때문에 굳이 필..