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