2012-11-05 23 views
0

我在创建UITableView时遇到了问题,因为我无法在其中一个单元格中看到标签和步进器,我分配给它。一个单元格中的标签不显示在iPhone的tableView中

这里是代码,我希望有人可以找出问题。当它到达情况4时,它不显示单元中的lblVarsta,只显示步进器。我对它进行了调试,并且该值在那里,但具有该值的标签无法看到。谢谢!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
UITextField *inputField; 

lblRasa = [[UILabel alloc]initWithFrame:CGRectMake(120, 12, 185, 30)]; 
lblCuloare = [[UILabel alloc]initWithFrame:CGRectMake(120, 12, 185, 30)]; 
lblJudet = [[UILabel alloc]initWithFrame:CGRectMake(120, 12, 185, 30)]; 
lbldate = [[UILabel alloc] initWithFrame:CGRectMake(120, 12, 185, 30)]; 

inputField = [[UITextField alloc]initWithFrame:CGRectMake(120, 12, 185, 30)]; 
inputField.adjustsFontSizeToFitWidth = YES; 
inputField.borderStyle = UITextBorderStyleRoundedRect; 
inputField.tag = indexPath.row; 
inputField.delegate = self; 


segmentedControl1 = [[UISegmentedControl alloc] initWithFrame:CGRectMake(220, 10, 100, 10)]; 
segmentedControl2 = [[UISegmentedControl alloc] initWithFrame:CGRectMake(220, 10, 100, 10)]; 

NSArray * segmentItems = [NSArray arrayWithObjects: @"Da", @"Nu", nil]; 


// UIDatePicker *pv = [[UIDatePicker alloc] init]; 
// UIActionSheet *uas = [[UIActionSheet alloc] initWithTitle:@"pv" delegate:self  cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Select", nil]; 
//  
// [uas addSubview:pv]; 

if (!cell) 
{ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellAccessoryNone reuseIdentifier:CellIdentifier]; 

} 

switch ([indexPath row]) 
{ 
    case 0: 
     cell.textLabel.text = @"Nume"; 
     inputField.text = dog?dog.title:@""; 
     [cell addSubview:inputField]; 
     break; 
    case 1: 
     cell.textLabel.text = @"Rasa"; 
     lblRasa.text = dog?dog.rasa:@""; 
     [cell addSubview:lblRasa]; 
     break; 
    case 2: 
     cell.textLabel.text = @"Culoare"; 
     lblCuloare.text = dog?dog.culoare:@""; 
     [cell addSubview:lblCuloare]; 
     break; 
    case 3:{ 
     cell.textLabel.text = @"Data nasterii"; 
     lbldate.text = dog?dog.data_nas:@""; 

     [cell addSubview:lbldate]; 
     [cell addSubview:actionSheet]; 
    break;} 
    case 4:{ 
     lblVarsta = [[UILabel alloc] initWithFrame:CGRectMake(120, 12, 185, 30)]; 
     stepper = [[UIStepper alloc] initWithFrame:CGRectMake(220, 10, 100, 10)]; 
     cell.textLabel.text = @"Varsta"; 
     //inputField.text = dog?[NSString stringWithFormat:@"%d",dog.varsta]:@""; 

     lblVarsta.text = @"3 ani"; 
     [stepper addTarget:self action:@selector(stepperValueChanged:) forControlEvents:UIControlEventValueChanged]; 


     [lblVarsta setTextColor:[UIColor whiteColor]]; 
     [lblVarsta setBackgroundColor:[UIColor clearColor]]; 
     //[lbl5 setTextAlignment:UITextAlignmentLeft]; 

     [stepper setStepValue:10]; 

     [cell addSubview:lblVarsta]; 
     [cell.contentView addSubview:stepper]; 
     break;} 
    case 5: 
     cell.textLabel.text = @"Proprietar"; 
     inputField.text = dog?dog.proprietar:@""; 
     [cell addSubview:inputField]; 
     break; 
    case 6: 
     cell.textLabel.text = @"Judet"; 
     lblJudet.text = dog?dog.judet:@""; 
     [cell addSubview:lblJudet]; 
     break; 
    case 7: 
     cell.textLabel.text = @"Adresa"; 
     inputField.text = dog?dog.adresa:@""; 
     [cell addSubview:inputField]; 
     break; 
    case 8:{ 
     cell.textLabel.text = @"Parinti"; 
     //inputField.text = dog?dog.parinti:@""; 
     //lblVarsta.text = [NSString stringWithFormat:@"%.f", stepper.value]; 

     segmentedControl1 = [[UISegmentedControl alloc] initWithItems: segmentItems]; 
    //   segmentedControl1.segmentedControlStyle = UISegmentedControlStyleBar; 
    //   segmentedControl1.selectedSegmentIndex = 0; 

     [segmentedControl1 addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged]; 

     [cell.contentView addSubview:segmentedControl1]; 
     break;} 
    case 9: 
     cell.textLabel.text = @"Pedigree"; 
     segmentedControl1 = [[UISegmentedControl alloc] initWithItems: segmentItems]; 
     [segmentedControl1 addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged]; 
     [cell.contentView addSubview:segmentedControl2]; 
     break; 
} 

return cell; 
} 
+0

这是一个糟糕的'cellForRowAtIndexPath'实现,在重用单元格之后至少会有一个添加的视图,您需要重新组织方法以使子视图层次清晰。至于'案例4:',您使用的是白色文本颜色,可能在默认的白色背景上不可见。 –

+0

是单元格背景颜色和lblVarsta背景颜色相同? – AppleDelegate

+0

AppleDelegate和A-Live非常感谢您的建议。现场可以请给我一些提示,也许是一个网站或什么,因为我是一个初学者。我很感谢你的帮助。 – alin

回答

0

您有

[cell addSubview:lblVarsta]; 
    [cell.contentView addSubview:stepper]; 

和 lblVarsta = [[ALLOC的UILabel] initWithFrame:方法CGRectMake(120,12,185,30)]; stepper = [[UIStepper alloc] initWithFrame:CGRectMake(220,10,100,10)];

你为什么不尝试

 [cell.contentView addSubview:stepper]; 
    [cell.contentView addSubview:lblgarsta]; 

与框架如下

lblVarsta = [[UILabel alloc] initWithFrame:CGRectMake(120, 12, 100, 30)]; 
    stepper = [[UIStepper alloc] initWithFrame:CGRectMake(220, 10, 100, 10)]; 

你得子视图同时添加到内容查看,并在其框架必须是这样的,他们都可以出现。

+0

Srikanth谢谢你!现在我有另一个问题。我在这里写它http://stackoverflow.com/questions/13238730/how-to-align-the-segmented-control-at-the-right-of-the-cell-of-the-tableview。也许你也可以弄清楚。祝你今天愉快! – alin

+0

我想出了问题。我正在重新定义对象并丢失了分段控件的坐标。 – alin

相关问题