我希望在iphone应用中设置一个使用切换开关的设置,以允许打开或关闭某些内容。我见过教程,但他们只展示了如何在iPhone的设置位置执行此操作。我希望在应用程序中完成此操作。任何指南,帮助建议。我想找一些类似下图的东西。
答案 0 :(得分:2)
您可以将UISwitch用作accessoryView。这看起来(几乎?)与你的照片完全一样。
这样的事情:
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UISwitch *mySwitch = [[[UISwitch alloc] init] autorelease];
[mySwitch addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = mySwitch;
}
// configure cell
UISwitch *mySwitch = (UISwitch *)cell.accessoryView;
mySwitch.on = YES; // or NO
cell.textLabel.text = @"Auto Connect";
return cell;
}
- (IBAction)switchToggled:(UISwitch *)sender {
UITableViewCell *cell = (UITableViewCell *)[sender superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSLog(@"Switch %i,%i toggled", indexPath.section, indexPath.row);
}
答案 1 :(得分:1)
您可以使用UISwitch。这是非常简单的课堂参考指南。
基本上你可以通过检查它的“on”属性来检查它的状态。
if(mySwitch.on) {
//do something here
}
答案 2 :(得分:1)
首先,确保您将UITableView样式设置为“Grouped”
然后,在你的cellForRowAtIndexPath方法中,按照以下几点做一些事情:
if (indexPath.section == kSwitchSection) {
if (!randomControl) {
randomControl = [ [ UISwitch alloc ] initWithFrame: CGRectMake(200, 10, 0, 0) ];
[randomControl addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];
randomLabel = [[UILabel alloc] initWithFrame:CGRectMake(20,8,180,30)];
[randomLabel setFont:[UIFont boldSystemFontOfSize:16]];
[randomLabel setText:@"My Label"];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell addSubview:randomControl];
[cell addSubview:randomLabel];
}
请记住稍后释放UISwitch对象,并包含用于将其设置为打开或关闭的代码,具体取决于它应处于何种状态。