UIStepper没有出现

我试图以编程方式添加UIStepper,HEre是我的代码:步进器不会出现。 :

stepper = [[UIStepper alloc]init]; [stepper setFrame:CGRectMake(216, 91, 155, 25)]; [stepper setMinimumValue:0]; [cell addSubview:stepper]; 

谢谢!

的cellForRowAtIndexPath:

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; UIStepper * myStepper = [[UIStepper alloc]initWithFrame:CGRectMake(206,20,94,27)]; [myStepper setMinimumValue:0]; [cell addSubview:myStepper]; cellLabel = [[UILabel alloc]init]; [cellLabel setFrame:CGRectMake(65, 22, 27, 27)]; [cellLabel setText:@"1"]; [cell.contentView addSubview:cellLabel]; } [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; cell.imageView.image = [imageArray objectAtIndex:indexPath.row]; // cell.textLabel.text = [cells objectAtIndex:indexPath.row]; if ([cell.imageView.image isEqual:[UIImage imageNamed:@"paddle5.png"]]) { [cellLabel setFrame:CGRectMake (175, 22, 30, 30)]; } if ([cell.imageView.image isEqual:[UIImage imageNamed:@"paddle4.png"]]) { [cellLabel setFrame:CGRectMake (150, 22, 30, 30)]; } if ([cell.imageView.image isEqual:[UIImage imageNamed:@"paddle3.png"]]) { [cellLabel setFrame:CGRectMake (120, 22, 30, 30)]; } if ([cell.imageView.image isEqual:[UIImage imageNamed:@"paddle2.png"]]) { [cellLabel setFrame:CGRectMake (90, 22, 30, 30)]; } return cell; } 

return cell;if语句return cell; 只是在电池上放置一些标签。

 [cell.contentView addSubview:stepper]; 

编辑:在您的代码中,您有:

  [stepper setFrame:CGRectMake(216, 91, 155, 25)]; 

然而,你声称你的细胞高73像素,宽320像素。

目前,您将步进器设置为155px宽,25px高,x原点216和yy原点91。

出现在91的y处的步进器位于单元的视野之外。

尝试这个:

 [stepper setFrame:CGRectMake(216, 22, 100, 30)]; 

使用initWithFrame:这是在以编程方式实例化UIView的子类的类时的指定初始化程序。

所以:(调整标准44点高单元格的框架)

 stepper =  [[UIStepper alloc]initWithFrame:CGRectMake(206, 8, 94, 27)]; 

我不确定为什么它仍然没有出现在你面前。 为了测试代码,我创建了一个针对iPhone的“Master / Detail”类型的新Xcode项目,那么我唯一要做的就是更改tableView:cellForRowAtIndexPath:方法。

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(206, 8, 94, 27)]; [stepper setMinimumValue:0]; [cell addSubview:stepper]; } // Configure the cell. cell.textLabel.text = NSLocalizedString(@"Detail", @"Detail"); return cell; } 

对我来说,这段代码显示了默认的项目表,“Detail”行中有一个步进器。

UIStepper控件是在ios 5.0中引入的。你需要检查你是不是在ios 5.0下面使用它。

如需更多参考: –

UIStepperControlExample

UIStepperControlAppleDocumentation