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