我的tableView的每個單元都有一個UISwitch作爲accessoryView的:當用戶點擊它激活細胞的附件視圖(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 2012-02-20 20:35:15