我正在尝试使用accordion tableview
tableviewcells
创建多个iOS
的{{1}}。在开源代码下面,我使用storyboard
parent
添加多个tableview单独的child
和iOS
单元格。在这个开源代码中为父级和子级开发了单个tableview单元,因此替换了storyboard
,但我需要为两者制作单独的单元格。请做一些修改并给出一些解决方案。
https://github.com/singhson/Expandable-Collapsable-TableView
答案 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。 希望它有所帮助。