iPhone 和应用程序设置

Posted

技术标签:

【中文标题】iPhone 和应用程序设置【英文标题】:iPhone and Application Settings 【发布时间】:2011-04-03 04:49:41 【问题描述】:

我想在 iphone 应用程序中设置一个使用拨动开关来打开或关闭某些东西的设置。我看过教程,但它们只显示了如何在 iPhone 的设置位置执行此操作。我希望在应用程序中完成此操作。任何指南,帮助建议。我要找类似下图的东西。

【问题讨论】:

【参考方案1】:

您可以将 UISwitch 用作附件视图。这看起来(几乎?)和你的照片一模一样。

类似这样的:

- (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);

【讨论】:

【参考方案2】:

您可以使用 UISwitch。这是非常简单的类参考指南。

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

基本上你可以通过检查它的“on”属性来检查它的状态。

if(mySwitch.on) 
   //do something here

【讨论】:

是的,但我想把它放在一张桌子里,或者至少从图片上看是这样的 UISwitch 只是一个 UIView 子类,因此您可以将此视图添加到自定义 tableView 单元格。根据您想在 tableView 中添加它的位置,取决于您如何将其设计到代码中。【参考方案3】:

首先,确保你的 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 对象,并包含根据它应该处于什么状态将其设置为打开或关闭的代码。

【讨论】:

以上是关于iPhone 和应用程序设置的主要内容,如果未能解决你的问题,请参考以下文章

在应用程序中存储 iPhone 应用程序设置

如何为 iphone 应用程序设置代码框架

设置一个应用程序来检测操作系统版本。和 iPhone 或 iPad

在 iPhone 设置应用程序中向滑块添加文本标签

XCode 构建设置以提高性能 - iPhone 应用程序

iphone 应用最低要求 iOS