2014-01-23 2 views
1

다른 Tablet ViewController 주위에 배치해야하므로 정적 TableView가 필요합니다. 내 케이스에서는 컨테이너를 사용하여 수행 할 수 없습니다.정적 UITableView를 동적 TableView로 변환하는 방법

질문 : 테이블 뷰를 정적 뷰에서 동적 뷰로 효율적으로 변환하려면 어떻게해야합니까?

나는 UITableView에서 UIViewController로 상속을 변경하고 더하기 대리자 메서드를 추가해야한다는 것을 알고 있습니다.

하지만 표의 모든 부분은 어떻게됩니까? 정적 표에 6 가지 유형의 셀이있는 3 개의 섹션이 있습니다. 모든 셀 유형에 대해 UITableViewCell을 서브 클래스 화하고 모든 것을 수동으로 처리해야합니까, 아니면이를 수행하는 더 영리한 방법이 있습니까?

+0

데이터 소스를 변경하고 'reloadData' 메시지를 테이블보기로 보내면됩니다. 문제가 무엇입니까? – Desdenova

+0

@Desdenova Storyboard에서 TableViews 콘텐츠 형식을 정적에서 동적으로 변경하자마자 TableView에서 모든 섹션이 느슨해졌습니다. – brainray

+0

왜 지금 동적 인 tableview를 만들어야합니까? 점은 무엇인가? 테이블을 동적으로 만들려면 배열/사전에 데이터를 하드 코딩하고 테이블 뷰를 채우기 위해 상용구 코드를 작성해야합니다. 나는 정적이 더 좋은 선택이라고 생각한다. – NightFury

답변

0

두 개를 변환 할 수는 없습니다. cellForRowAtIndexPath :와 같은 일부 테이블 위임 메소드를 구현하는 것만으로 정적 컨텐츠가 손실됩니다. 즉, 테이블 전체가 동적이어야합니다. 이렇게하면 처음에 정적으로 추가 한 내용이나 새로운 동적 내용을 표시할지 여부를 결정하는 논리를 정의 할 수 있습니다.

또한 위임자/데이터 소스 메서드를 구현하기 위해 뷰 컨트롤러가 필요하지 않습니다. 이미 서브 클래스가 UITableView이라면 괜찮습니다. 자체 위임/데이터 소스로 설정하고 하위 클래스 내에서 해당 메소드를 구현할 수 있습니다.

마지막 질문에 답하기 위해 실제로 더 좋은 방법은 없습니다. 셀이 공유 할 모든 것을 구현하는 서브 클래스가 UITableViewCell 인 하나의 기본 클래스를 만든 다음이 기본 클래스의 하위 클래스에 개별 변경 사항을 구현하는 것이 좋습니다. 테이블 뷰에서 여러 셀 하위 클래스를 사용하면 훨씬 나쁜 것으로 들립니다.

+0

좋아요, 내가 길을 가야 할 것 같습니다 ... BTW : 가능성을 가지고 UIViewController가 필요합니까 내가 원하는 TableView 배치 (위의 설명에 설명 된대로 컨테이너를 사용하는 경우이 경우 작동하지 않음) – brainray

+0

글쎄, 완벽하게 구현 된 정적 TableView에서이 작업을 수행하는 것은 IMHO보다 더 나쁩니다. Apple은 ViewController 내에서 정적 TV를 사용하는 방법을 제공해야합니다. – brainray

+1

@brainray 실제로 할 수 있습니다. Interface Builder에서 뷰 컨트롤러에 테이블을 추가하고, 그것을 선택하고, 속성 인스펙터로 이동하십시오. 상단의 첫 번째 드롭 다운을 사용하면 "정적 셀"과 "동적 프로토 타입"사이를 전환 할 수 있습니다. –

관련 문제