iPhone和应用程序设置

时间:2011-04-03 04:49:42

标签: iphone objective-c ios4 iphone-sdk-3.0

我希望在iphone应用中设置一个使用切换开关的设置,以允许打开或关闭某些内容。我见过教程,但他们只展示了如何在iPhone的设置位置执行此操作。我希望在应用程序中完成此操作。任何指南,帮助建议。我想找一些类似下图的东西。

enter image description here

3 个答案:

答案 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。这是非常简单的课堂参考指南。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UISwitch_Class/Reference/Reference.html

基本上你可以通过检查它的“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对象,并包含用于将其设置为打开或关闭的代码,具体取决于它应处于何种状态。