iphone - 如何从分组部分 uitableview 添加/删除单元格?

标签 iphone ios uitableview

如何以编程方式在分组部分中添加或删除单元格?

我在 Storyboard中使用静态单元格创建了一个分组 TableView 。在 Storyboard中,我使用属性检查器面板设置行数。例如,对于第 1 部分,我定义了 3 行。然后使用 3 项的 NSMutableArray,我可以在启动时正确地将值正确加载到每个部分。

我最终希望能够在运行时添加/删除单元格。该部分尚未编码,但为了模拟添加新的单元格场景,我在代码中向数组添加了一个新项目,但没有增加“属性检查器”面板中该部分的行数。我曾希望我不需要进行任何其他更改来适应新项目,因为在 numberOfRowsInSection 方法中,我将返回特定部分的数组计数。

这是我重新运行代码时得到的错误消息:

* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayI objectAtIndex:]: index 3 beyond bounds [0 .. 2]”

显然我需要以某种方式指定额外的行数。谁能阐明我如何在运行时执行此操作?谢谢。

最佳答案

你不应该通过属性检查器来做。它使您无法动态插入和删除单元格。 尝试

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [yourArray count];
}

否则执行此操作。

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if(section==0){
       return 3;
    }else if(section==1){
       return 4;
    }
 return 0;
}

如果您有很多部分,则针对不同的部分依此类推.. 当您更新从中读取数据的数组时,您可以重新加载整个表..

[tableView reloadData];

但更好的方法是像这样在一个 block 中插入一行或多行。

[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:yourIndexPath withRowAnimation:UITableViewRowAnimationRight];
[tableView endUpdates];

您还可以添加动画以从右侧或列表或顶部或底部添加单元格。

希望对你有帮助!! 干杯!

关于iphone - 如何从分组部分 uitableview 添加/删除单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542276/

相关文章:

ios - CancelAllLocalNotifications 有时不起作用

ios - 从 UITableViewCell 清除 Firebase 观察结果

ios - 当导航栏半透明 = false 时 UISearchBar 超出屏幕边界

ios - StackView 对齐问题

ios - UITableviewCell 中的 collectionView numberOfItemsInSection

ios - 显示 UIView 而不是 .XIB 的替代方法

objective-c - 在 Storyboard中,如何制作用于多个 Controller 的自定义单元格?

ios - IBAction 在 Xcode 中打开用于表格栏单元格交互的 URL

iphone - NSURLRequest 超时 IOS

iOS - 在横向模式下获取状态栏高度和宽度 0