objective-c - UITableViewDataSource中的cellForRowAtIndexPath如何实现?
高洛峰
高洛峰 2017-04-21 10:58:06
0
2
593

在controller中delegate了UITableViewDataSource以后,是必须实现这个方法以展示UITableView的。它的方法原型如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

能否结合例子具体解释下NSIndexPath的含义,另外与它想对应的还有一个必须实现的方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

这个section表示的又是什么呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(2)
PHPzhong

먼저 TableView의 레이아웃을 설명합니다. TableView의 내용은 두 가지 수준으로 구성되며, 각 Row에 해당하는 뷰는 TableViewCell이 됩니다. 아래와 같이 settings.app을 예로 들어 보겠습니다.

사진에는 ​​두 개의 섹션
이 있습니다. 섹션 0에는 6개의 행이 있습니다 -- 비행기 모드~오퍼레이터
섹션 1 -- Sound ~ Desktop

에서 3개의 행을 볼 수 있습니다.

질문의 두 가지 방법에 대해 이야기해 보겠습니다.

으아악

이 메서드는 다양한 사용자 정의 스타일로 렌더링되거나 여러 기본 스타일로 렌더링될 수 있는 특정 셀을 반환합니다.
IndexPath는 렌더링하려는 셀의 위치를 ​​표시합니다. indexPath 개체에는 이름에서 알 수 있듯이 특정 셀을 찾을 수 있습니다.
참고: 이 메서드는 특정 셀이 화면에 나타날 때 호출되고, 한 번도 나타나지 않으면 한 번 호출됩니다. 화면의 보이는 영역이 사라지면 셀 객체가 재활용되고, 보이는 영역에 나타나는 다른 셀에도 재사용되기 때문입니다. 따라서 이 방법으로 셀을 렌더링할 때는 for 루프 등을 사용하여 셀을 정리하는 것이 가장 좋습니다.

으아악

TableView가 생성될 때(또는 tableView 객체에 reloadData가 호출될 때) 호출되어 특정 섹션의 행(셀) 수를 반환하는 메소드입니다.
예를 들어 settings.app 인터페이스에서는

이어야 합니다. 으아악
洪涛

1. NSIndexPath에는 주로 (NSUInteger)section(NSUInteger)row이 포함됩니다. 각 rowsection에 속해야 합니다. 그렇지 않으면 이 row는 각 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section의 개수를 의미하지 않습니다. > 거기 있어요? section 2. row을 열고, 안에 있는 제목 A, B, C...가
에 속하고, Contacts이 완전한 section header을 구성합니다. header + rows + footer과 유사하게 머리글과 바닥글을 사용자 정의할 수 있습니다. >

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿