문제

응용 프로그램에서 다음 방법을 사용하고 있습니다.

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

이 방법에서 사용하여 indexPath.row 각 행의 행 번호를 얻을 수 있습니다.

그러나 실제로 그 행에서 셀에 액세스하고 해당 셀에 대해서만 서식을 수행하고 싶습니다.

저를 안내 해주세요.

도움이 되었습니까?

해결책

어쩌면 오해가있을 수 있습니다. 당신이 인용하는 메소드는 해당 인덱스 경로에 표시 할 행에 테이블 뷰를 알려야합니다. 따라서 TableView 가이 방법을 요청할 때 마다이 색인 경로에는 아직 행이 없기 때문에 그렇게합니다.

템플릿 코드는 새 셀 또는 Dequeue를 생성합니다.

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

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
              cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     }

그런 다음 액세스 할 수 있습니다 cell 각 셀의 내용을 구성하거나 ContentView에 컨텐츠를 추가합니다.

행당 셀의 서식을 조작하는 경우 (예 : 셀의 색상) 다음 대표 방법으로이를 수행해야합니다.

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

다른 팁

다른 대답은 제대로 작동하지만 사용자가 도청 한 셀을 변경합니다. 제 경우에는 다른 셀도 바꾸고 싶었습니다. 검색 후 시도했습니다.

[[tableView cellForRowAtIndexPath:5 setAccessoryType:UITableViewCellAccessoryNone];

IndexPath는 정수가 아니기 때문에 이것은 작동하지 않습니다. (그러나 indexpath.row는). 그래서 DOC를 찾아 보면 NSIndexPath를 사용하여 NSIndexPath 값으로 행을 인코딩 할 수 있음을 알았습니다. 작업 코드는 다음과 같습니다.

[[tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:5 inSection:0]] setAccessoryType:UITableViewCellAccessoryNone];

이런 식으로 TableView 객체가있는 경우 모든 행/섹션의 셀에 셀에 액세스 할 수 있습니다.

이것이 누군가를 돕기를 바랍니다.

액세스 할 수 있습니다 보이는 uitableview를 사용한 셀 -cellForRowAtIndexPath 방법. 에서 uitableview 참조:

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

반환 값
셀이 보이지 않거나 인덱스 경로가 범위를 벗어난 경우 테이블의 셀 또는 nil을 나타내는 물체.

그러나 (IMO) cellForRowAtIndexPath 셀 설정에 가장 적합한 장소입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top