我在单个屏幕中使用2个tableviews,一个是平面,第二个是自定义单元格。只有一个正在运作

时间:2017-03-02 04:24:15

标签: objective-c uitableview custom-cell

NSString *cellIdentifier = @"cellID";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (tableView==self.monthTableVW)
{
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text=[self.monthArr  objectAtIndex:indexPath.row];
    cell.backgroundColor=[ UIColor colorWithRed:224.0f/255.0f green:188.0f/255.0f blue:113.0f/255.0f alpha:0.5f];
}
if (tableView==self.attendanceTBVW)
{
    customeCell *cell1=[[customeCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
    cell1=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if(cell==nil)
    {
        NSArray *cellArr=[[NSBundle mainBundle]loadNibNamed:@"customeCell" owner:self options:nil];
        cell=[cellArr objectAtIndex:0];
    }

    cell1.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];

}
return cell;
}

我需要一个表视图用作下拉菜单,第二个用于显示数据,即attendanceTBVW,即customCell。

5 个答案:

答案 0 :(得分:1)

首先在故事板标识检查器中为不同的表视图单元设置不同的单元标识符。然后

 #import CustomTableViewCell.h

然后在此类中拖动dateLbl IBoutlet属性。然后在此类型中投射自定义单元格。

NSString *cellIdentifier = @"cellID1";
NSString *customCell = @"cellID2";

UITableViewCell *cell;

if (tableView==self.monthTableVW)
{

    if (cell == nil)
    {
        cell = [tableView   dequeueReusableCellWithIdentifier:cellIdentifier];
        //cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text=[self.monthArr  objectAtIndex:indexPath.row];
    cell.backgroundColor=[ UIColor colorWithRed:224.0f/255.0f green:188.0f/255.0f blue:113.0f/255.0f alpha:0.5f];
}
if (tableView==self.attendanceTBVW)
{

    //customeCell *cell1=[[customeCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
    //cell1=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if(cell==nil)
    {
        (CustomTableViewCell *)cell = [tableView   dequeueReusableCellWithIdentifier:customCell];
        NSArray *cellArr=[[NSBundle mainBundle]loadNibNamed:@"customeCell" owner:self options:nil];
        cell=[cellArr objectAtIndex:0];
        cell.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];


    }

    //cell1.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];

  }
    return cell;
}

试试吧。希望它能奏效。

答案 1 :(得分:0)

从您的代码看起来您​​只返回下拉菜单的单元格。您没有为出勤TBVW返回cell1。请返回两个表视图的单个单元格。希望它有所帮助。

答案 2 :(得分:0)

你能不能为不同的tableview创建不同的单元格并返回其单元格。

因为两个表都不同所以你必须为两个表返回不同的单元格。

在代码中进行此更改。

if (tableView==self.monthTableVW) {
    NSString *cellIdentifier = @"cellID";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text=[self.monthArr  objectAtIndex:indexPath.row];
    cell.backgroundColor=[ UIColor colorWithRed:224.0f/255.0f green:188.0f/255.0f blue:113.0f/255.0f alpha:0.5f];
    return cell;
}
if (tableView==self.attendanceTBVW) {
    NSString *cellIdentifier = @"customeCell";
    customeCell *cell1=[[customeCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
    cell1=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if(cell==nil) {
        NSArray *cellArr=[[NSBundle mainBundle]loadNibNamed:cellIdentifier owner:self options:nil];
        cell=[cellArr objectAtIndex:0];
    }
    cell1.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];
    return cell;
}

答案 3 :(得分:0)

尝试进行此更改检查

if (tableView==self.monthTableVW) {
    NSString *cellIdentifier = @"cellID";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text=[self.monthArr  objectAtIndex:indexPath.row];
    cell.backgroundColor=[ UIColor colorWithRed:224.0f/255.0f green:188.0f/255.0f blue:113.0f/255.0f alpha:0.5f];
    return cell;
}
if (tableView==self.attendanceTBVW) {
    NSString *cellIdentifier = @"customeCell";
    customeCell *cell1=[[customeCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
    cell1=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if(cell==nil) {
        NSArray *cellArr=[[NSBundle mainBundle]loadNibNamed:cellIdentifier owner:self options:nil];
        cell=[cellArr objectAtIndex:0];
    }
    cell1.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];
    return cell;
}

答案 4 :(得分:0)

 UITableViewCell * raj=[[UITableViewCell alloc]init];



if (tableView==self.monthTableVW)
{
    NSString *cellIdentifier = @"cellID";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text=[self.monthArr  objectAtIndex:indexPath.row];
    cell.backgroundColor=[ UIColor colorWithRed:224.0f/255.0f green:188.0f/255.0f blue:113.0f/255.0f alpha:0.5f];
    raj= cell;
}
if (tableView==self.attendanceTBVW)
{
    NSString *cellIdentifier = @"customeCell";
    customeCell *cell1=[[customeCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
    cell1=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if(cell1==nil) {
        NSArray *cellArr=[[NSBundle mainBundle]loadNibNamed:cellIdentifier owner:self options:nil];
        cell1=[cellArr objectAtIndex:0];
    }
    cell1.dateLbl.text=[self.monthArr objectAtIndex:indexPath.row];
  raj= cell1;
}

return raj;
  

这个对我有用..谢谢很多