呼び出されたときに、私のtableViewのすべてのセルはaccessoryViewとしてUISwitchました:ユーザーがそれをタップするとアクティブセルのアクセサリービュー(UISwitch)didSelectRowAtIndexPathが
UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = mySwitch;
[mySwitch addTarget:self action:@selector(SwitchToggle:) forControlEvents:UIControlEventValueChanged];
スイッチがトグルされるが、私はまた、ときに切り替えたいですdidSelectRowAtIndexPathが呼び出されます(ユーザーがそのセルをタップすると)。
私はこれを試してみました(しかし、それは動作しません):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UISwitch *tempSwitch = (UISwitch *)[tableView cellForRowAtIndexPath:indexPath].accessoryView;
[tempSwitch addTarget:self action:@selector(SwitchToggle:) forControlEvents:UIControlEventValueChanged];
[tableView deselectRowAtIndexPath:indexPath animated:YES]; // cell selection fadeout animation
}
感謝。
「動作しない」とはどうなりますか?あたかも 'didSelectRowAtIndexPath:'が存在しないかのように、何もしないでください。 – dasblinkenlight