TIL(Today I Learned)
7월 5일(월)
학습내용
- 오토레이아웃과 프레임
- 자식 뷰에 오토레이아웃이 적용되어 있으면, 부모 뷰의 viewDidLoad 시점의 자식뷰 frame 좌표와 viewDidAppear 시점의 자식뷰 frame 좌표가 다르다. 후자는 오토레이아웃이 적용되면서 바뀐 좌표로 초기화된다.
- UIView의 convert 류 메서드
- blueView.convert(yellowView.frame, to: view) 이런식으로 사용이 가능하다.
- blueView의 자식뷰인 yellowView.frame을 view에 맞게 좌표를 변환한다라는 의미이다.
- view.convert(yellowView.frame, from: blueView)와 결과가 동일하다.
문제점/고민한점
- UIBezierPath에 적용되는 좌표계의 기준점은 어디일까?
해결방법
- 화면 좌측 상단을 (0,0)으로 기준한다.
참고
- Get position of UIView in respect to its superview’s superview: https://stackoverflow.com/questions/17572304/get-position-of-uiview-in-respect-to-its-superviews-superview
- convert(_:to:): https://developer.apple.com/documentation/uikit/uiview/1622442-convert