[알람 앱 만들기] 트러블슈팅: UITableView가 뷰 계층 구조에 없이 표시되는 셀과 기타 내용을 레이아웃하라는 지시를 받았습니다.

황석범·2025년 1월 9일
0

내일배움캠프_iOS_5기

목록 보기
62/76

1. 문제 상황

아래와 같은 에러를 만났다

대충 번역해보면

[TableView] 경고는 한 번만: UITableView가 뷰 계층 구조에 없이 표시되는 셀과 기타 내용을 레이아웃하라는 지시를 받았습니다(테이블 뷰 또는 해당 슈퍼뷰 중 하나가 창에 추가되지 않음). 이로 인해 테이블 ​​뷰 내부의 뷰가 정확한 정보(예: 테이블 뷰 경계, 특성 컬렉션, 레이아웃 여백, 안전 영역 인셋 등) 없이 로드되고 레이아웃을 수행하도록 강제하여 버그가 발생할 수 있으며, 추가 레이아웃 패스로 인해 불필요한 성능 오버헤드가 발생할 수도 있습니다.

셀 UI도 이상하다...

2. 문제 분석

  • UITableView가 뷰 계층에 올바르게 추가된 상태에서 레이아웃이 수행되고 있는지 점검

3. 점검 과정

  • viewDidAppear나 viewWillAppear 시점에서 reloadData를 호출하여 레이아웃을 강제로 갱신
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    
    // 뷰 계층에 추가된 후에 reloadData 호출
    DispatchQueue.main.async { [weak self] in
        self?.tableView.reloadData()
    }
}

테이블 뷰 데이터는 제대로 변했다.

하지만 경고는 계속 뜬다...

profile
iOS 공부중...

0개의 댓글

관련 채용 정보