오른쪽에 셀 수가 적은 셀을 사용자 지정 셀로 설정했습니다. 내가 원하는 것은 스위치 변경 이벤트에 특정 셀의 값을 저장하는 것입니다. 테이블 뷰에는 번호 섹션이 있으므로 인덱스 경로를 얻기 위해 섹션과 행이 필요하므로 스위치 태그를 설정할 수 없습니다.섹션 기반 테이블보기에서 스위치 변경 이벤트시 셀의 인덱스 경로를 얻을 수있는 방법
어떤 대안을 제안하지만 섹션 기반 테이블보기에서 UISwitch를 사용해야합니다.
감사합니다.
오른쪽에 셀 수가 적은 셀을 사용자 지정 셀로 설정했습니다. 내가 원하는 것은 스위치 변경 이벤트에 특정 셀의 값을 저장하는 것입니다. 테이블 뷰에는 번호 섹션이 있으므로 인덱스 경로를 얻기 위해 섹션과 행이 필요하므로 스위치 태그를 설정할 수 없습니다.섹션 기반 테이블보기에서 스위치 변경 이벤트시 셀의 인덱스 경로를 얻을 수있는 방법
어떤 대안을 제안하지만 섹션 기반 테이블보기에서 UISwitch를 사용해야합니다.
감사합니다.
사용자 지정 셀에 셀이 나타내는 정보를 식별하는 데 도움이되는 속성을 추가합니다. 인덱스 경로, 데이터 모델의 인덱스 등 ...
그런 다음 셀 스위치가 변경 될 때 UITableView 또는 다른 코드 조각을 알리기 위해 호출 할 수있는 셀에 블록 속성을 추가하십시오. 예 :
@property (nonatomic,copy) void (^onSwitchChange)(UITableViewCell *cell);
사용자 지정 셀 코드 내에 UISwitch에 대한 동작 처리기를 추가하십시오. 셀이 발생하면 self.onSwitchChange (self)를 호출하면 onSwitchChange 블록을 등록한 코드에 스위치가 변경되었음을 알리고 셀을 알립니다. 이 수
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath
{
<snip>
YourUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:yourCellIdentifier forIndexPath:indexPath];
cell.onSwitchChange=^(UITableViewCell *cellAffected){
// Add code to deal with the swicth switch using properties of cellAffected
... Your handler code here ...
}];
<snip>
}
당신은 테이블 뷰 컨트롤러의 모든 변경 사항을 처리 : 다음과 같이 셀을 만들 테이블보기에서
는 onSwitchChange 블록을 설정합니다. 희망이 도움이됩니다.
그것은 매력처럼 작동합니다. 감사 –
큰 섹션의 최대 행에 대한 아이디어가있는 경우에도 섹션이 있어도 태그를 만들 수 있습니다. 예를 들어 섹션에 1000 개의 행이 있다고 생각되면 다음 수식을 사용하여 태그를 만들 수 있습니다.
section = tag/1000;
row = tag%1000;
당신이 섹션에서는 찾을 수있을 것이다 얼마나 많은 행의 아무 생각이 없을 경우 :
tag = section * 1000 + row;
나중에 스위치의 당신의 IBAction를에서 당신은 다음 indexpath (부와 행) 사용을 찾을 수 있습니다 sender.superview.superview
을 사용하여 셀을 제거하십시오 (계층 구조에 다른 뷰를 추가 한 경우주의하십시오).
Rory McKinnel의 answer은 여전히 문제를 해결하는 가장 깨끗한 솔루션입니다.
@ 자겐의 답변이 작동합니다. 셀이 어떤 슈퍼 뷰인지 알아 내야했습니다. 내 것이 더 높은 레벨이었습니다.
UITableViewCell *cell = (UITableViewCell*)[sender superview].superview.superview;
NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell];
NSLog(@"Section %ld Row : %ld",(long)indexPath.section,(long)indexPath.row); // print row section and index
UISwitch 값 변경 선택기에서 셀 개체를 가져 오면 괜찮습니까? – Jageen
예, UI 스위치 상태가 변경되었지만 어떤 스위치 통계가 변경되었는지를 결정할 수 없습니다. –
내 대답을 참조하십시오 halp 수 있습니다 – Jageen