【发布时间】:2011-11-23 16:59:47
【问题描述】:
我有一个有四行的表。最初应该显示其中的两个——第 1 行和第 2 行。另外两个应该仅在位于第 2 行的 UISwitch 的状态为“开”时出现。如果状态设置为“关闭”,那么它们应该会消失。
我创建了一个UITableViewCell,其中包含UISwitch:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
NSMutableArray *dict = [dictionary objectForKey:@"DATA"];
//the location of the switch!
if(indexPath.row == 1){
SwitchCell *cell = (SwitchCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SwitchCell" owner:self options:nil];
cell = (SwitchCell *)[nib objectAtIndex:0];
}
cell.title1.text = [dict objectAtIndex:indexPath.row];
[cell.switchSpecifyEnd addTarget:self action:@selector(switchSpecifyEnd) forControlEvents:UIControlEventValueChanged];
mySwitch = cell.switchSpecifyEnd;
return cell;
}else{
static NSString *CellIdentifier1 = @"CustonCell";
DateTimeCell *cell = (DateTimeCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DateTimeCell" owner:self options:nil];
cell = (DateTimeCell *)[nib objectAtIndex:0];
}
cell.description.text = [dict objectAtIndex:indexPath.row];
cell.dateTime.text = self.date;
return cell;
}
}
-(void) switchSpecifyEnd{
//displays only 0 (defined initial state of my switch)
NSLog(@"SWITCH - Specify End: %d", mySwitch.state);
// [tableView1 deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
// [tableView1 reloadData];
}
如何让第 3 行和第 4 行最初不显示,并在开关状态更改为“开”时让它们出现?
【问题讨论】:
标签: objective-c ios cocoa-touch uitableview uiswitch