iPhone + uitableview + 특정 행의 액세스 셀
-
05-07-2019 - |
문제
응용 프로그램에서 다음 방법을 사용하고 있습니다.
- (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
셀 설정에 가장 적합한 장소입니다.