0

我基本上和这个问题有同样的问题。但猜猜怎么了?这个问题没有好的答案。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    if([indexPath row] == 0){

        UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:@"SwitchCell"];
        if( aCell == nil ) {
            aCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SwitchCell"];
            aCell.textLabel.text = @"Colors";
            aCell.selectionStyle = UITableViewCellSelectionStyleNone;

            /*
            UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
            aCell.accessoryView = switchView;
            [switchView setOn:NO animated:NO];
            [switchView addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];
            */
            UIStepper *stepperView = [[UIStepper alloc] initWithFrame:CGRectZero];
            NSLog(@"The stepper is %@", stepperView);
            aCell.accessoryView = stepperView;
           [stepperView setMaximumValue:10];
           [stepperView setMinimumValue:0];
           [stepperView addTarget:self action:@selector(stepperChanged) forControlEvents:UIControlEventValueChanged];
           NSLog(@"The stepper is %@", stepperView);
       }
       return aCell;
    }

    UITableViewCell *aCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SwitchCell"];

    NSString *s = @"foo";
    s = [s stringByAppendingFormat:@"%d", [indexPath row]];
    aCell.textLabel.text = s;

return aCell;

}

因此,如果我将代码切换到注释掉的代码,那效果很好(显示 UISwitch)。所以我试图做的就是用 UIStepper 替换 UISwitch ,它只是没有出现。我讨厌objective-c。

哦,这两个打印行都显示值为(null)。在我创建它之后,它是空的吗?

编辑:iOS 5.0。我觉得答案可能与为什么会这样:

NSLog(@"%@", [[UISwitch alloc] init]);

不为空,而

NSLog(@"%@", [[UIStepper alloc] init]);

一片空白。

4

2 回答 2

1

尝试通过此方法创建您的 UIStepper:

UIStepper* stepper = [[UIStepper alloc] init];
stepper.frame = CGRectMake(220, 10, 100, 10);
[cell.contentView addSubview: stepper];

这会将步进器放在表格视图单元格的右侧。

在这个相关问题中找到了这个答案。

于 2013-06-15T21:33:57.540 回答
0

代码在 iOS 5.0 中编译,但模拟器是针对 iPhone 4.3 的。所以 iPhone 不知道 UIStepper 是什么,但知道 UISwitch 是什么。为什么它没有导致事情崩溃(这可以节省我很多时间)是一个谜。

于 2013-06-15T22:26:33.607 回答