스토리 보드를 통해 제공되는 두 가지 유형의 테이블 뷰 셀이 있습니다. 이들은 동적 프로토 타입 과 정적 셀입니다.
1. 동적 프로토 타입
이름에서이 유형의 셀은 동적으로 생성됩니다. 스토리 보드가 아닌 코드를 통해 제어됩니다. 테이블 뷰의 대리자 및 데이터 소스를 사용하여 셀 수, 셀 높이, 셀 프로토 타입을 프로그래밍 방식으로 지정할 수 있습니다.
셀을 테이블보기로 끌면 셀 프로토 타입이 선언됩니다. 그런 다음이 프로토 타입을 기반으로 셀을 얼마든지 작성하고 cellForRow
프로그래밍 방식으로 메소드를 통해 테이블보기에 추가 할 수 있습니다 . 이 방법의 장점은 모든 뷰를 직접 추가 한 각 셀을 만드는 대신 하나의 프로토 타입 만 정의하면된다는 것입니다 (정적 셀 참조).
따라서이 경우 셀 프로토 타입의 UI 요소를보기 컨트롤러에 연결할 수 없습니다. 하나의 뷰 컨트롤러 오브젝트 만 시작하지만 많은 셀 오브젝트가 시작되어 테이블보기에 추가 될 수 있습니다. 하나의 뷰 컨트롤러 연결로 여러 셀을 제어 할 수 없으므로 셀 프로토 타입을 뷰 컨트롤러에 연결하는 것은 의미가 없습니다. 그렇게하면 오류가 발생합니다.
이 문제를 해결하려면 프로토 타입 레이블을 UITableViewCell
객체 에 연결해야 합니다. A UITableViewCell
는 또한 셀의 프로토 타입이므로 원하는 수의 셀 오브젝트를 시작할 수 있으며 각 오브젝트는 스토리 보드 테이블 셀 프로토 타입에서 생성 된보기에 연결됩니다.
마지막으로, cellForRow
메소드에서 UITableViewCell
클래스 에서 사용자 정의 셀을 작성 하고 레이블로 재미있는 일을하십시오.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier") as! YourCell
cell.label.text = "it works!"
return cell
}
2. 정적 셀
반면에 정적 셀은 실제로 스토리 보드를 통해 구성됩니다. UI 요소를 각 셀로 드래그하여 작성해야합니다. 스토리 보드에서 셀 번호, 높이 등을 제어하게됩니다. 이 경우 스토리 보드에서 생성 한 것과 비교하여 휴대 전화와 완전히 동일한 테이블보기가 표시됩니다. 정적 셀은 페이지를 설정하는 데 더 자주 사용되며 셀은 많이 변경되지 않습니다.
정적 셀의 UI 요소를 제어하려면 실제로 해당 요소를보기 컨트롤러에 직접 연결하고 설정해야합니다.