2012-12-19 33 views
7

我想在我的tableview中显示来自web的不同数据,但我没有得到如何在单独的单元格中显示它们的一个表格部分,任何人都可以帮助我显示 一个小区如何在tableView中添加5个不同的自定义单元格

cell.textLabel.text=app.i_name; 

在第二小区

cell.textLabel.text=app.i_phone; 

在第三小区

cell.textLabel.text=app.i_hours; 

在第五单元第四小区

cell.textLabel.text=app.i_address; 

cell.textLabel.text=app.i_email; 

索引我的行单元格是

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

    static NSString *CellIdentifier = @"Single Cell"; 
    SingleCell *cell =(SingleCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


    if (cell == nil) { 
     UIViewController *c = [[UIViewController alloc] initWithNibName:@"SingleCell" bundle:nil]; 
     cell = (SingleCell *) c.view; 
     //[c release]; 

    } 
appDC * application = [dataArray objectAtIndex:[indexPath row]]; 

     //cell.namelbl.text=application.application_name; 


return cell; 
} 
+0

此代码中的任何一个可以帮助我这个问题? – NullData

+2

恕我直言,如果你接受更多的答案,你会得到更多的帮助。这只是我的经验。 –

+1

另外,你问如何创建5个不同的自定义单元格或如何更改数据与“股票iOS”UITableViewCells? –

回答

5

试试这个代码:

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

    static NSString *CellIdentifier = @"Single Cell"; 
    SingleCell *cell =(SingleCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


    if (cell == nil) { 
     UIViewController *c = [[UIViewController alloc] initWithNibName:@"SingleCell" bundle:nil]; 
     cell = (SingleCell *) c.view; 
     //[c release]; 

    } 
    appDC * application = [dataArray objectAtIndex:[indexPath row]]; 

    //cell.namelbl.text=application.application_name; 
    if (indexPath.row == 0) 
    { 
     cell.textLabel.text=application.i_name; 
    } 
    else if (indexPath.row == 1) 
    { 
     cell.textLabel.text = application.i_iphone; 
    } 
    else if (indexPath.row == 2) 
    { 
     cell.textLabel.text = application.i_hours; 
    } 
    else if (indexPath.row == 3) 
    { 
     cell.textLabel.text = application.i_address; 
    } 
    else 
    { 
     cell.textLabel.text = application.i_email; 
    } 



    return cell; 
} 

希望这个答案将有所帮助。欢呼声

+0

我已经试过这个它不需要工作它只给我第一个单元:( – NullData

+0

你可以再试一次吗?我没有使用相同的对象来传递值textLabel所以,你确定你的对象属性是NSString的类型吗? – IKQ

+3

我相信提问者试图从数组中的每个元素获取所有数据到一个单元格中......我假设这只给他第一个单元格的原因是因为他的数组中只有一个元素,当应用程序尝试填充表时,它只会给他第一个单元格。定制单元格肯定需要创建以容纳从应用程序对象中提取的所有数据数组“dataArray”检出此链接http:// stackoverflow。com/questions/4917027/ios-steps-to-create-custom-uitableviewcell -with-xib-file –

1

IKQ的代码示例应该可以工作。但我建议尝试我的TableKit库。这样的代码会更加清晰雅致:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    TKStaticCell* nameCell = [TKStaticCell cellWithStyle:UITableViewCellStyleValue1 text:@"Name" detailText:app.i_name]; 
    TKStaticCell* phoneCell = [TKStaticCell cellWithStyle:UITableViewCellStyleValue1 text:@"Phone" detailText:app.i_phone]; 
    TKStaticCell* hoursCell = [TKStaticCell cellWithStyle:UITableViewCellStyleValue1 text:@"Hours" detailText:app.i_hours]; 
    TKStaticCell* addressCell = [TKStaticCell cellWithStyle:UITableViewCellStyleValue1 text:@"Address" detailText:app.i_address]; 
    TKStaticCell* emailCell = [TKStaticCell cellWithStyle:UITableViewCellStyleValue1 text:@"email" detailText:app.i_email]; 
    TKSection* section = [TKSection sectionWithCells:nameCell, phoneCell, hoursCell, addressCell, emailCell, nil]; 
    self.sections = [NSArray arrayWithObject:section]; 
} 

另外,库允许定义自定义单元格,而不是TKStaticCell

2

我解决了这样的代码感谢所有给予建议

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

    static NSString *CellIdentifier = @"CellForInfo"; 
    CellForInfo *cell =(CellForInfo *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


    if (cell == nil) { 
     UIViewController *c = [[UIViewController alloc] initWithNibName:@"CellForInfo" bundle:nil]; 
     cell = (CellForInfo *) c.view; 
     //[c release]; 



    } 

    appDC * application = [dataArray objectAtIndex:0]; 
    if (indexPath.row == 0) 
    { 
     cell.lblinfo.text=application.i_name; 
    } 
    if (indexPath.row == 1) 
    { 
     cell.lblinfo.text = application.i_phone; 
    } 
    if (indexPath.row == 2) 
    { 
     cell.lblinfo.text = application.i_hours; 
    } 
    if (indexPath.row == 3) 
    { 
     cell.lblinfo.text = application.i_address; 
    } 
    if (indexPath.row == 4) 
    { 
     cell.lblinfo.text = application.i_email; 
    } 



    return cell; 
} 
-1
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    [self tableInfo]; 
} 


- (void) tableInfo 
{ 

    NSArray *keysArray = @[@"CampaignsName",@"BusinessName",@"BusinessType",@"CampaignsType",@"Distance",@"Daysleft",@"CampaignImage",]; 

    NSArray *valuesArray1 =[NSArray arrayWithObjects:@"5 % OFF ",@"Coffe Shop",@"1",@"1",@"0.10 Miles",@"5 days Left",@"b2.png", nil]; 

    NSArray *valuesArray2 = [NSArray arrayWithObjects:@"win $2 for you & charity ",@"Red Tommato",@"2",@"2",@"20 Miles",@"2 days Left",@"b1.png", nil]; 

    NSArray *valuesArray3 = [NSArray arrayWithObjects:@"Buy dogs food & get a one more",@"Pet Care",@"3",@"3", @"30 Miles",@"10 days Left",@"b2.png", nil]; 

    NSArray *valuesArray4 =[NSArray arrayWithObjects:@"win $2 for you & charity ",@"Red Tommato",@"1",@"1",@"0.10 Miles",@"7 days Left",@"b2.png", nil]; 



    NSDictionary *dict1 = [NSDictionary dictionaryWithObjects:valuesArray1 forKeys:keysArray]; 

    NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:valuesArray2 forKeys:keysArray]; 

    NSDictionary *dict3 = [NSDictionary dictionaryWithObjects:valuesArray3 forKeys:keysArray]; 

    NSDictionary *dict4 = [NSDictionary dictionaryWithObjects:valuesArray4 forKeys:keysArray]; 



    self.tableArray = [[NSArray alloc]initWithObjects:dict1,dict2,dict3,dict4,dict3,dict1,dict4,dict2,nil]; 
    NSLog(@"Array %@",tableArray); 
    [self.tableObj reloadData]; 
} 

#pragma mark table view datasource 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 

} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [self.tableArray count]; 
} 

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

    UITableViewCell *cell = [self tableCustomView:tableView cellForRowAtIndexPath:indexPath]; 
    return cell; 
} 

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



    static NSString *CellIdentifier1 = @"CustomCellIdentifier"; 
    static NSString *CellIdentifier2 = @"CustomCellIdentifier2"; 


    if (indexPath.row % 2 != 0) 
    { 
     CustomCell2 *cell2 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2]; 
     if (cell2 == nil) 
     { 

      NSArray *topObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell2" owner:self options:nil]; 
      cell2 = [topObjects objectAtIndex:0]; 
     } 


     id object = [self.tableArray objectAtIndex:indexPath.row]; 


     cell2.CampaignsNameLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignsName"]]; 
     cell2.BusinessNameLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"BusinessName"]]; 
     cell2.DistanceLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"Distance"]]; 
     cell2.DaysleftLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"Daysleft"]]; 

     cell2.cellBackImg.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignImage"]]]; 


     int businessType = [[NSString stringWithFormat:@"%@",[object valueForKey:@"BusinessType"]] integerValue]; 

     NSLog(@": %d",businessType); 

     switch (businessType) 
     { 


      case 1: 

       cell2.cellBusinessTypeImg.image = [UIImage imageNamed:@"[email protected]"]; 

       break; 
      case 2: 

       cell2.cellBusinessTypeImg.image = [UIImage imageNamed:@"BTY.png"]; 

       break; 
      case 3: 

       cell2.cellBusinessTypeImg.image = [UIImage imageNamed:@"t1.png"]; 

       break; 

      default: 
       break; 
     } 


     int CampaignsType = [[NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignsType"]] integerValue]; 

     switch (CampaignsType) 
     { 

      case 1: 

       cell2.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t3.png"]; 

       break; 
      case 2: 

       cell2.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t2.png"]; 

       break; 
      case 3: 

       cell2.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t1.png"]; 

       break; 

      default: 
       break; 
     } 

     mainCell = cell2 ; 


    } 

    else 
    { 
     CustomCell1 *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
     if (cell1 == nil) 
     { 

      NSArray *topObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell1" owner:self options:nil]; 
      cell1 = [topObjects objectAtIndex:0]; 
     } 


     id object = [self.tableArray objectAtIndex:indexPath.row]; 


     cell1.CampaignsNameLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignsName"]]; 
     cell1.BusinessNameLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"BusinessName"]]; 
     cell1.DistanceLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"Distance"]]; 
     cell1.DaysleftLbl.text = [NSString stringWithFormat:@"%@",[object valueForKey:@"Daysleft"]]; 

     cell1.cellBackImg.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignImage"]]]; 


     int businessType = [[NSString stringWithFormat:@"%@",[object valueForKey:@"BusinessType"]] integerValue]; 

     NSLog(@": %d",businessType); 

     switch (businessType) 
     { 


      case 1: 

       cell1.cellBusinessTypeImg.image = [UIImage imageNamed:@"[email protected]"]; 

       break; 
      case 2: 

       cell1.cellBusinessTypeImg.image = [UIImage imageNamed:@"BTY.png"]; 

       break; 
      case 3: 

       cell1.cellBusinessTypeImg.image = [UIImage imageNamed:@"t1.png"]; 

       break; 

      default: 
       break; 
     } 


     int CampaignsType = [[NSString stringWithFormat:@"%@",[object valueForKey:@"CampaignsType"]] integerValue]; 

     switch (CampaignsType) 
     { 

      case 1: 

       cell1.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t3.png"]; 

       break; 
      case 2: 

       cell1.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t2.png"]; 

       break; 
      case 3: 

       cell1.cellOverLayBusinessTypeImg.image = [UIImage imageNamed:@"t1.png"]; 

       break; 

      default: 
       break; 
     } 

     mainCell = cell1 ; 
    } 


    return mainCell; 

    NSLog(@"Index Path is :%d %d", indexPath.section,indexPath.row); 
} 
0

您可以使用短

  CellForInfo * cellForInfo = (CellForInfo *)[tableView dequeueReusableCellWithIdentifier:nil]; 

      if (cellForInfo ==nil) { 
       NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CellForInfo" owner:self options:nil]; 
       cellForInfo = [nib objectAtIndex:0]; 
      } 
相关问题