0

我有一个 UITableView,我想在用户单击添加按钮时动态添加部分标题。如果不需要,用户还应该能够删除标题。在每个标题下,用户应该能够添加相关的项目列表。除此之外,用户应该只能在所选部分下动态插入行。请提出一些想法来实现此功能。提前致谢。

4

3 回答 3

2

您可以通过删除然后再次添加该部分来实现此目的,这将导致调用tableView:titleForHeaderInSection:

假设您的部分索引为 0:

BOOL shouldShowHeader;
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    shouldShowHeader ? @"Your Header" : nil;
}

- (IBAction)buttonAction:(id)sender
{
    shouldShowHeader = !shouldShowHeader;
    NSIndexSet *set = [NSIndexSet indexSetWithIndex:0];
    [self.tableView beginUpdates];
    [self.tableView deleteSections:set withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView insertSections:set withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];
}

页脚的工作方式相同。

于 2013-08-05T03:22:12.587 回答
0

当用户单击此方法中的按钮时,设置一个标志并重新加载您的表格视图,然后执行此操作..

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if(flag)
    {
        UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 30)];
        return headerView;
    }
    else
        return nil;
}

你可以像这样删除表格视图中的标题......

如果要删除表格的标题视图,只需将 myTable.tableHeaderView 属性设置为 nil。如果您实际上是一个节标题,那么您需要从 viewForHeaderInSection 方法返回 nil 并调用 [myTableView reloadData]

我希望这会正常工作。

于 2013-04-10T05:50:01.893 回答
0

我会告诉动态部分标题。保留一个标志并最初设置为 0。当用户单击该 buttonClick 方法中的按钮时,将标志设置为 1 并重新加载 tableView。

          -(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
          {
                  if(flag)
                       return aView;//alloc init aView and return.
                  else
                       return nil.
          }

同样对于动态行有一个数组和 numberOfRows 是 array.count。单击按钮在数组中再插入一项并重新加载表。

我希望这会有所帮助。

于 2013-04-10T05:42:08.210 回答