如何为单独的accordion tableview父级和子级单元创建单独的UI对象?

时间:2015-12-09 12:34:12

标签: ios objective-c iphone uitableview

我正在尝试使用accordion tableview tableviewcells创建多个iOS的{​​{1}}。在开源代码下面,我使用storyboard parent添加多个tableview单独的childiOS单元格。在这个开源代码中为父级和子级开发了单个tableview单元,因此替换了storyboard,但我需要为两者制作单独的单元格。请做一些修改并给出一些解决方案。

enter image description here

https://github.com/singhson/Expandable-Collapsable-TableView

1 个答案:

答案 0 :(得分:1)

这是实现相同目标的简单方法:

  

1。)创建自定义父单元格(比如MenuParentCell)   2.)创建自定义子单元格(比如MenuChildCell)   3.)创建一个viewcontroller(比如Menu)并将Tableview拖放到其中4)set delegate和datasource

现在: 在cellForRowAtIndexPath中编写如下代码:

 MenuItem *menuItem = [APPDELEGATE.FinalMenuList objectAtIndex:indexPath.row];

    if (menuItem.isParent)
    {
        static NSString *CellIdentifier = @"mMenuParentCell";
        MenuParentCell *cell = (MenuParentCell*)[mMenuTable dequeueReusableCellWithIdentifier:CellIdentifier];

        //show MenuSelectedIndicationImage
        cell.mMenuSelectedIndicationImage.hidden = NO;
        if(cell == nil)
        {
            [[NSBundle mainBundle] loadNibNamed:@"MenuParentCell" owner:self options:nil];
            cell = (MenuParentCell*)mMenuParentCell;
        }

        cell.mMenuItemImage.image = [UIImage imageNamed:menuItem.mIconName];
        cell.mMenuItemLabel.text = menuItem.mItemName;

        if (menuItem.isSelected)
        {
            cell.mMenuSelectedIndicationImage.image = [UIImage imageNamed:@"Menu_Up_Arrow_Icon_white.png"];
        }
        else
        {
            cell.mMenuSelectedIndicationImage.image = [UIImage imageNamed:@"Menu_Down_Arrow_Icon_white.png"];
        }


        }



        return cell;
    }
    else
    {
        static NSString *CellIdentifier = @"mMenuChildCell";
        MenuChildCell *cell = (MenuChildCell*)[mMenuTable dequeueReusableCellWithIdentifier:CellIdentifier];

        if(cell == nil)
        {
            [[NSBundle mainBundle] loadNibNamed:@"MenuChildCell" owner:self options:nil];
            cell = (MenuChildCell*)mMenuChildCell;
        }

        cell.mMenuItemImage.image = [UIImage imageNamed:menuItem.mIconName];
        cell.mMenuItemLabel.text = menuItem.mItemName;



        return cell;
    }

* note - MenuItem是一个自定义类,用于存储父单元格是选中还是子单元格。 一旦你选择重新加载tableview。 希望它有所帮助。