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
- 앱출시
- 제발태그그만
- ES6
- 144hz모니터
- 도커 이미지
- 왕국타이머
- tensorflow
- docker-compose
- 도커
- Swift
- 평면모니터
- dockerfile
- 게이밍모니터
- docker tag
- 출석하냥
- docker
- 카카오인턴십
- iOS #코코아터치
- 암기빵
- QHD모니터
- 사이드 프로젝트
- 간단정리
- 소프트웨어마에스트로11기
- React Native
- docker image
- 코코아터치
- 한성모니터
- 데일리
- 개인정보처리방침
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |