私はそれらを持ってUITableView
いUISwitchs
ます。
スイッチが切り替えられたら、機能を実行したいと思います。この関数は、スイッチがオンまたはオフであり、スイッチがオンに変更された行をログに記録するだけです。私が抱えている問題は、スイッチをクリックすると、スイッチをクリックする前にその行をクリックしない限り、正しい行が記録されないことです。
私の問題は、スイッチをクリックしても行が選択されないことだと思います。行を選択するか、ID をスイッチに追加できるようにするにはどうすればよいですか?
したがって、スイッチ ID「1」は「ON」です。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"POICell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//set the cell text to the catName
cell.textLabel.text = [self.catNames objectAtIndex:[indexPath row]];
//add switch
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = switchView;
[switchView setOn:YES animated:NO];
[switchView addTarget:self action:@selector(switchChanged: ) forControlEvents:UIControlEventValueChanged];
// Configure the cell...
return cell;
}
- (void) switchChanged:(id)sender {
NSString *StrCatID =[[NSString alloc]init];
StrCatID = [self.catIDs objectAtIndex:[self.inputTableView indexPathForSelectedRow].row];
UISwitch* switchControl = sender;
NSLog( @"The switch for item %@ is %@",StrCatID, switchControl.on ? @"ON" : @"OFF" );
}