更改静态表视图,例如iPhone上的联系人应用程序



我知道这个问题以前有人问过,但没有人真正回答过。

我正在尝试制作一个具有静态表格视图和右上角的完成/编辑按钮的应用程序。我需要能够在单元格处于一种状态时隐藏该单元格,并在处于另一种状态时显示该单元格。此外,我还需要能够在用户选择某些内容时添加单元格。我已经准备好了布尔值来检测完成/编辑按钮的变化。

所以基本上我的问题是:如何使表视图在用户按下按钮时显示单元格,并在用户再次按下按钮时隐藏它。

以及如何通过代码添加静态单元格。

谢谢!

我还没有真正看过iOS 5中的静态表格,因为我相信这需要故事板,我不使用。

然而,这可以通过经典的分组UITableView轻松实现。在您的UITableViewDataSource中,方法仅根据编辑状态返回不同的结果。 如果您使用的是UITableView的文字editing模式,则可以执行以下操作(警告:在浏览器中键入):

– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if ([tableView isEditing]) {
        // Return number of sections when editing
    }
    else {
        // Return number of sections when not editing
    }
}
– (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section
{
    if ([tableView isEditing]) {
        // Return number of rows in section when editing
    }
    else {
        // Return number of rows in section when not editing
    }
}
// etc.

我不记得-setEditing:过渡是否为您处理动画,但如果没有,那么您需要使用-insertRowsAtIndexPaths:withRowAnimation:和相关方法来通知表视图行数、节数等已更改,并且它应该根据新布局进行动画处理。 最后,如果您要添加/删除多个行/部分,您可能希望像往常一样将您的工作包装在一个-beginUpdates/-endUpdates对中,以便所有动画都合并。

最新更新