[iOS] SnapKit의 제약 설정 메서드 + 예시 코드
·
📱 iOS
이 글은 장바구니 셀 높이 동적 조절 문제에서 이어지는 내용입니다. 최근 팀 프로젝트에서 장바구니 셀 높이 동적 조절 문제를 해결하면서 SnapKit의 remakeConstraints를 처음 사용했었습니다. 원래 makeConstraints밖에 몰랐기에 제약 메서드를 더 공부해서 정리해 봤습니다. SnapKit 제약 설정 메서드 정리우선 제가 찾아본 결과 메서드는 아래와 같이 총 4가지가 있었습니다. makeConstraints: 제약을 최초 설정할 때 사용.remakeConstraints: 기존 제약을 전부 제거하고 새로 설정updateConstraints: 기존 제약을 그대로 유지하면서 일부 값만 변경prepareConstraints: 제약을 미리 정의해 두고 필요할 때 activate()로 사용이제..
[Swift] 오토 클로저(@autoclosure)란?
·
📌 Swift
오토 클로저(@autoclosure)란?Swift에서 오토클로저(@autoclosure)는 표현식을 자동으로 클로저로 감싸주는 문법이다. 보통 클로저를 인자로 받는 함수에서, 표현식을 더 간결하게 넘기기 위해 사용한다. 괄호 { } 없이도 표현식을 전달할 수 있다. 예를 들자면,func logIfTrue(_ predicate: () -> Bool) { if predicate() { print("True 입니다") }}logIfTrue { return 2 > 1} 이렇게 쓰던 코드를 @autoclosure를 사용하면,func logIfTrue(_ predicate: @autoclosure () -> Bool) { if predicate() { print("Tr..
[iOS] UILabel 주요 속성 정리
·
📱 iOS
1. font텍스트의 글꼴(Font)과 크기(size)를 지정한다. .boldSystemFont(ofSize:), .systemFont(ofSize:), 커스텀 폰트도 사용이 가능하다.label.font = UIFont.boldSystemFont(ofSize: 16) // 볼드체label.font = UIFont.systemFont(ofSize: 16) // 시스템 폰트label.font = UIFont(name: "BMDOHYEON", size: 16) // 커스텀 폰트 2. text레이블에 표시할 문자열(String)을 설정한다.label.text = "Hello, Swift!" 숫자 같이 쓰려면 "\(변수)원" 처럼 문자열 보간 사용let price = 3000label.text = "\(price..
[iOS] Auto Layout 우선순위(Priority)
·
📱 iOS
Auto Layout에서의 “우선순위”란?Auto Layout은 뷰의 크기를 계산할 때 이렇게 묻는다.💬 “이 뷰는 얼마나 본인의 크기를 지키고 싶어하나요?”이 질문에 대한 답이 바로 우선순위(Priority)이다. 우선순위의 두 가지 종류뷰가 intrinsicContentSize(자기 고유 크기)를 기준으로, 얼마나 늘어나기 / 줄어들기 싫어하는지를 나타내는 값이다. 1. Content Hugging Priority“나는 내 콘텐츠 크기만큼만 있고 싶어. 더 넓어지기 싫어.”값이 클 수록, 늘어나지 않으려 함남는 공간이 있어도 콘텐츠 크기 이상으로 잘 안 커짐 2. ContentCompression Resistance Priority“나는 지금보다 작아지기 싫어.”값이 클수록, 줄어들지 않으려 함콘텐..
[iOS] Auto Layout - UIScrollView와 LayoutGuide 정리
·
📱 iOS
🍏 UIScrollView의 기본 구조보통은 scrollView → contentView 또는 stackView → subviews 구조로 구성한다.scrollView └── contentView 또는 stackView └── 여러 subviewstackView 하나로 전체 콘텐츠를 구성할 경우에는 contentView 없이 바로 사용하는 경우도 있다. 주의할 점ScrollView는 콘텐츠의 전체 높이(height) 또는 너비(width) 가 명확해야 스크롤이 작동한다.stackView를 사용하지 않고, subview가 2개 이상인 경우에는 가장 마지막 subview에 bottom 제약을 꼭 걸어줘야 한다. 그렇지 않으면 스크롤이 제대로 작동하지 않거나, 일부 뷰가 화면 밖으로 잘릴 수 있다...
05.02 (금) iOS 사전 캠프
·
🖋️ TIL Journal
TIL은 편한 말투로 작성됩니다. 📍 오늘 학습한 내용 정리1. 프로그래머스 문제 풀기2. todo 앱 마무리 프로그래머스 문제 풀기programmers의 기초 트레이닝에 있는 수 조작하기 2 문제를 풀었다.아래가 내가 풀면서 처음 작성한 코드이다.import Foundationfunc solution(_ numLog:[Int]) -> String { var result = "" for i in 1.. 문제를 풀었는데 위 이미지처럼 "시간 초과" 문제로 테스트에 실패했다는 결과가 나왔다.지금까지 문제를 풀면서 그냥 케이스가 틀린 경우는 많았지만, 시간 초과로 실패한 건 이번이 처음이었다. 구글링을 통해 찾아보니, 문자열은 값 타입이기에 문자열 연결 연산이 반복되면 새로운 문자..