我正在尝试实现可扩展的表格视图单元格。像标题和子标题视图一样。 在选择单元格时,它会使用正在解析的json数据扩展几个单元格。 要填充的数据是从JSON对象接收的。 任何人都能帮助我吗?
答案 0 :(得分:0)
您可以使用uitableview
方法
[UITableview beginUpdates];
// delete the row in table view
[UITableview deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:1 inSection:lastcount - 1]] withRowAnimation:UITableViewRowAnimationTop];
// insert section in table Or Set as per your need
[UITableview insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(Array.count - [[results objectForKey:@"data"] count], [[results objectForKey:@"data"] count])] withRowAnimation:UITableViewRowAnimationFade];
[UITableview endUpdates];
希望它对你有用。
答案 1 :(得分:0)
将您的类别创建为部分标题,将子类别创建为特定部分的行。使用此UITableView委托方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// calculate section count == number of categories
return sectionCount;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
// create section header for section...
// add a button so you can monitor if user tapped on section and
// set button's tag = section
// configure section view
return vwSectionHeader;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// if section not tapped than numberOfSubcategoriesForASection = 0
// else
// calcualate numberOfSubcategoriesForASection
return numberOfSubcategoriesForASection;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// dequeue your cell that corespondes to the subcategory
// configure cell
return cell;
}
-(void)BtnSectionPressed:(id)sender{
// update data source subcategories for selected section
// section == [sender tag]
// [reload table]
// or nicer solution
[UITableview beginUpdates];
// colapse previous section
// call with array of subcategories index paths for section last expanded
- (void)deleteRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
// expand new section
// call with array of subcategories index paths for section you want to expand
- (void)insertRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
[UITableview endUpdates];
}