UIScrollView? Content View? 스크롤 뷰는 스크롤 뷰 그 자체와, 콘텐츠 뷰가 있다. 스크롤 뷰는 콘텐츠를 들여다보는 프레임이고, 콘텐츠 뷰는 그 프레임이 돌아다닐 콘텐츠를 말한다. 그래서 스크롤 뷰는 커봤자 아이폰 화면크기만하고 콘텐츠 뷰는 엄~청 커질 수 있다. ScrollView, ContentView Auto Layout 설정 스크롤뷰 오토레이아웃은 다음과 같은 단계를 따르면 된다 스크롤 뷰를 씬에 추가하고, 일반 뷰처럼 constraint를 설정한다 스크롤 뷰 안에 View를 추가한다(이때 View의 이름을 Content View로 해두면 좋음) Content View의 top, bottom, leading, trailing을 스크롤뷰에 맞춘다. 이제 Content View는..

iOS에서 키보드가 올라오면, 뷰의 컨텐츠를 가리는 경우가 있다. 그래서 키보드의 높이에 따라서 뷰의 컨텐츠 위치를 재조정해줘야하는데, 이때 주로 사용하는 방법이 UIWindow.keyboardWillShowNotification 에 observer를 달고 notification의 userinfo 키로 UIResponder.keyboardFrameEndUserInfoKey 를 사용하여 키보드의 높이를 가져와서 뷰 컨텐츠의 높이를 재조정해준다. keyboardFrameEndUserInfoKey 는 별 게 아니고, UIResponder에 정의된 String 타입의 클래스 프로퍼티이다. 직접 코드를 타고 들어가보면 알 수 있다. 예시 코드 UIWindow.keyboardWillShowNotification 에..
Intrinsic content size란 자신의 content size에 따라서 결정되는 뷰 사이즈를 말한다. 뷰 내뷰의 컨텐츠에 따라서 자신의 사이즈를 잡는 label, button 등은 intrinsic content size가 있어서 자신의 height, width를 알고 있다. 그래서 좌상단에 top, leading constraint만 줘도 잘 붙는다. UIView는 위와 같은 조건의 constraint를 주면 width, height를 모르겠다고 뜬다. size inspector에서 Intrinsic size의 place holder를 만들어두면 임시로 크기를 정할 수 있는데, 이거는 인터페이스 빌더에서 임시로 적용되는 거고 런타임에는 적용되지 않는다. 그래서 UIView의 Intrinsic..

UICollectionView 를 사용하면서 사용자가 셀을 터치했을 때 간단한 애니메이션을 주고 싶었습니다. 그래서 여러 animate들을 적용해보던 중에 괜찮은 효과를 적용할 수 있어서 정리하였습니다. 적용한 코드 collectionView의 셀을 터치했을 때 사용자에게 터치 피드백을 주기위해서 사용하였다. CGAffineTransform(=아핀 변환)을 사용하여 셀의 크기를 살짝 줄였다 되돌렸고 이 때 스프링 효과를 주었다. 코드는 아래와 같다. func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) { if let cell = collectionView.cellForItem(at: ..
키보드를 내리고 싶을 때 두가지 방법이 있다. 키보드의 리턴키를 눌러서 끝내기 키보드의 리턴키를 누르면 textFieldShouldReturn(_:) 델리게이트 메소드가 호출된다. 이 메소드 내에서 textField.resignFirstResponder() 메소드를 호출하면 된다. func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true } 화면 다른 곳을 터치시켜서 끝내기 UIViewController의 touchesBegan(_:, with:) 메소드를 오버라이드하고 내부에서 view.endEdting(_:) 메소드를 호출한다. override func touches..

결론: 화면 전환은 뷰가 메모리에 모두 로드 되고, viewDidLoad() 메소드의 호출이 완료돼야 일어난다. 뷰가 메모리에 로드되는 시점은 실제로 화면 전환을 하기 위해 present(_:animated:) 메소드를 호출하거나 세그웨이를 실행하는 등의 행위를 할 때(이때 뷰 컨트롤러가 뷰를 메모리에 로드한다)이고 그래서 viewDidLoad() 메소드도 이때 호출된다. 뷰 컨트롤러 사이에 값을 전달하는 걸 실습해보면서 viewDidLoad() 메소드를 오버라이딩해서 사용했는데 문득 이 메소드가 호출되는 시점이 정확히 언제인지가 궁금해졌다. instantiateViewController(withIdentifier:) 메소드를 호출하여 뷰 컨트롤러가 인스턴스화된 순간인지, 아니면 화면을 전환하는 그 순간..
- Total
- Today
- Yesterday
- QHD모니터
- 암기빵
- docker tag
- 카카오인턴십
- dockerfile
- 제발태그그만
- iOS #코코아터치
- 평면모니터
- docker-compose
- 한성모니터
- 소프트웨어마에스트로11기
- 144hz모니터
- 개인정보처리방침
- 도커
- 코코아터치
- 출석하냥
- 간단정리
- ios
- docker image
- Swift
- 앱출시
- 데일리
- 사이드 프로젝트
- ES6
- tensorflow
- 왕국타이머
- 도커 이미지
- React Native
- 게이밍모니터
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |