2009-10-23 2 views
7

UIButton 또는 UILabel과 같은 다른 객체가있는 UITableView가 포함 된 UIView (인터페이스 작성기에서)를 만드는 데 문제가 있습니다. UITableView는 항상 UITableView 객체 자체의 크기에 관계없이 UIView에서 최대 공간을 차지합니다. File Owner는 표준 UITableViewController입니다.UITableView는 인터페이스 빌더에서 사용 가능한 모든 공간을 사용합니다.

+1

"UITableView는 Interface Builder에서 사용 가능한 모든 공간을 사용합니다"와 같은 이름을 바꿀 수 있습니까? 현재 제목은 매우 설명 적이 지 않습니다. – Casebash

답변

12

:

프로그램이 이름을 가진 애플의 문서에서 찾을 수 있습니다 그들과 함께 처리하기위한 좋은 자원

이 작업을 쉽게 수행하는 방법은 다음과 같습니다.

1) xib로 테이블보기 컨트롤러를 만듭니다.

2) .h 파일의 상속 된 형식을 UITableViewController에서 UIViewController로 변경하십시오.

3) 프로토콜 UITableViewDataSource, UITableViewDelegate를 .h 파일에 추가하십시오.

4) xib을 열고보기에 추가하십시오.

5)보기 아래의 xib에서 표보기를 끌어 원하는 크기로 조정합니다.

6) 파일 소유자의 "보기"속성을 UITableView 대신보기에 연결하십시오. 테이블 뷰의 데이터 소스 및 델리게이트 속성은 여전히 ​​File 's Owner에 연결되어야합니다.

7) (선택 사항) 테이블보기에서 전달되는 테이블보기 컨트롤러 대리인 메서드 외부에서 테이블을 다시로드하거나 액세스하려는 경우 "myTable"등의 UITableView * IBOutlet을 만들고 IB에 표를 연결하십시오.


또 다른 방법은, XIB으로 새 UIViewController에 만들 파일의 소유자로 XIB, 와이어 데이터 소스/대표에 테이블을 추가하고로에서 방법을 복사하는 데 사용하는 새로운있는 UITableViewController 클래스를 만드는 것입니다 보기 컨트롤러를 누른 다음 삭제하십시오.

+1

이것이 올바른 방법입니다.Apple의 문서에서 : "관리 할 뷰가 테이블 뷰가 여러 하위 뷰 중 하나 인 복합 뷰이면 테이블 뷰 (및 다른 뷰)를 관리하기 위해 UIViewController의 사용자 정의 하위 클래스를 사용해야합니다. UITableViewController 왜냐하면이 제어기 클래스는 탐색 막대와 탭 막대 사이에 화면을 채우도록 표보기의 크기를 조정하기 때문입니다 (둘 중 하나가있는 경우). " – bpapa

+0

또한 Kendall을 추가해야한다고 생각합니다. UIViewController 클래스의 속성으로 tableView를 명시 적으로 추가하고 IBOutlet으로 만들어야합니다. – bpapa

+0

켄들/bpapa - 도와 줘서 고마워. 결합 된 답변을 사용하여 문제를 해결할 수있었습니다. bpapa의 마지막 코멘트에 대한 한 가지 - 내 UIViewController 클래스에서 "tableView"라는 속성을 만들어야했습니다. 그러나 IBOutlet으로 선언하거나 실제 tableView 자체에 IBOutlet을 연결하지 않은 경우에도 작동하는 것으로 보입니다. 나는 그것이 왜 작동하는지 알지 못했습니다. :-) –

0

인터페이스 빌더 (IB)에서 UITableView를 만드는 것은 나에게 매우 문제가되었습니다. 나는 처음 개발자로서 당신과 같은 문제에 부 닥쳤다. 많은 좌절감을 겪은 후에, UITableViews를 위해 IB를 포기했다.

나에게 가장 좋은 해결책은 프로그래밍 방식으로 UITableViewController (및 머리글로 사용하는 UINavigationController)를 구현하는 것이 었습니다. 전체 Model-View-Controller 패러다임을 파악하면 실제로는 매우 간단합니다.

"아이폰 OS 용 테이블보기 프로그래밍 가이드"
"아이폰 OS에 대한보기 컨트롤러 프로그래밍 가이드"

+1

Kendall의 대답과 저의 의견을보십시오. 3.0 이후로, 애플은 더 나은 설명을 위해 문서를 정리했다. 이 접근법을 사용하면 Interface Builder에서 여전히 Table Views를 수행 할 수 있습니다. – bpapa

+0

잘 고맙습니다. 감사합니다. –

관련 문제