[Swift] addChild의 frame 문제
문제
아니 나는 이렇게 하면 childView
가 add 되는 줄 알았지~~~
func goToChildView() {// .loadFromNib()은 nib 에서 initiate 하는 커스텀 함수
let childVC = ChildViewController.loadFromNib() self.addChild(childVC)//단순한 addSubView는 부모-자식 관계 성립 안함
self.view.addSubview(childVC.view)//code 로 작업하면 didMove 직접 호출해 줘야, childVC 에 있을 didMove override 함수가 동작할 수 있음
childVC.didMove(toParent: self)}
하지만 내 뜻대로 될리 없지!
처음에 오른쪽 둥그렇게 잘리는게 안먹는 줄 알았다. 근데…. 자세히 보니까 label이 가운데가 아니라 좀 치우친거 같자나…?! 뷰가 잘리고 있는건가? ㅡㅡ 생각이 들기 시작함.. ㅎㅎ
그래서 오른쪽에 족구마난 빨간색 뷰를 올려놓고 다시 띄워봤더니..!
역시 뷰가 잘리고 있는 거였군 ㅎㅎ
해결
아니… 원래 코드에서는 잘 되는데 왜 나한테만 이런 일이 생기는걸까…(오열) 제거에선..안되는데요…?????????
하지만 이럴땐 당황하지 않고 childVC
의 frame
을 설정해준다! (사실 이미 많이 당황하고 삽질 거친 후임 ^^..)
childVC.view.frame = self.view.bounds
전체 코드
func goToChildView() {// .loadFromNib()은 nib 에서 initiate 하는 커스텀 함수
let childVC = ChildViewController.loadFromNib()// frame 설정
childVC.view.frame = self.view.boundsself.addChild(childVC)// 단순한 addSubView는 부모-자식 관계 성립 안함
self.view.addSubview(childVC.view)// code 로 작업하면 didMove 직접 호출해 줘야, childVC 에 있을 didMove override 함수가 동작할 수 있음
childVC.didMove(toParent: self)}
생성한 childVC
해제하는 방법이나 예제는 아래 링크를 참고하시길!