在controller中delegate了UITableViewDataSource
以后,是必须实现这个方法以展示UITableView的。它的方法原型如下
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
能否结合例子具体解释下NSIndexPath
的含义,另外与它想对应的还有一个必须实现的方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
这个section表示的又是什么呢?
먼저 TableView의 레이아웃을 설명합니다. TableView의 내용은 두 가지 수준으로 구성되며, 각 Row에 해당하는 뷰는 TableViewCell이 됩니다. 아래와 같이 settings.app을 예로 들어 보겠습니다.
에서 3개의 행을 볼 수 있습니다.사진에는 두 개의 섹션
이 있습니다. 섹션 0에는 6개의 행이 있습니다 -- 비행기 모드~오퍼레이터
섹션 1 -- Sound ~ Desktop
질문의 두 가지 방법에 대해 이야기해 보겠습니다.
으아악이 메서드는 다양한 사용자 정의 스타일로 렌더링되거나 여러 기본 스타일로 렌더링될 수 있는 특정 셀을 반환합니다.
으아악IndexPath는 렌더링하려는 셀의 위치를 표시합니다. indexPath 개체에는 이름에서 알 수 있듯이 특정 셀을 찾을 수 있습니다.
참고: 이 메서드는 특정 셀이 화면에 나타날 때 호출되고, 한 번도 나타나지 않으면 한 번 호출됩니다. 화면의 보이는 영역이 사라지면 셀 객체가 재활용되고, 보이는 영역에 나타나는 다른 셀에도 재사용되기 때문입니다. 따라서 이 방법으로 셀을 렌더링할 때는 for 루프 등을 사용하여 셀을 정리하는 것이 가장 좋습니다.
TableView가 생성될 때(또는 tableView 객체에 reloadData가 호출될 때) 호출되어 특정 섹션의 행(셀) 수를 반환하는 메소드입니다.
이어야 합니다. 으아악예를 들어 settings.app 인터페이스에서는
1.
NSIndexPath
에는 주로(NSUInteger)section
과(NSUInteger)row
이 포함됩니다. 각row
은section
에 속해야 합니다. 그렇지 않으면 이row
는 각- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
의 개수를 의미하지 않습니다. > 거기 있어요?section
2.row
을 열고, 안에 있는 제목 A, B, C...가에 속하고,
Contacts
이 완전한section header
을 구성합니다.header + rows + footer
과 유사하게 머리글과 바닥글을 사용자 정의할 수 있습니다. >