- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在IB中设计了UIView,并在其上设计了UITableView。在 View Controller 的 viewDidLoad 方法中,我初始化自定义 UITableViewContoller 并设置 dataSource 和 delegate:
- (void)viewDidLoad {
[super viewDidLoad];
...
GoodsTableController *goodsController = [[GoodsTableController alloc] init];
goodsController.data = [[orderData objectForKey:@"Result"] objectForKey:@"Items"];
self.gtc = goodsController;
[goodsController release];
goodsTable.delegate = self.gtc;
goodsTable.dataSource = self.gtc;
[goodsTable reloadData];}
对 GoodsTableController 感兴趣:
//in the header file
@interface GoodsTableController : UITableViewController {
NSMutableArray *data;
}
@property (nonatomic, retain) NSMutableArray *data;
//implementation
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"Current data size %d", [data count]);
return [data count];
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSLog(@"Deleting row at index %d", indexPath.row);
[self.tableView beginUpdates];
[self.data removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
[self.tableView reloadData];
}
}
对于调试,我使用了 NSLog,我看到数组已更改,其大小已更改,调用了 tableView:numberOfRowsInSection,但是表没有更新。行不隐藏。即日志:
2011-04-07 13:08:18.784 Test[32300:207] Current data size 2 //first call tableView:numberOfRowsInSection: by reloadData in View Controller after set data
2011-04-07 13:08:23.486 Test[32300:207] Current data size 2 //call after slide on row
2011-04-07 13:08:26.091 Test[32300:207] Deleting row at index 0
2011-04-07 13:08:26.093 Test[32300:207] Current data size 1 //call after endUpdate
2011-04-07 13:08:26.096 Test[32300:207] Current data size 1 //call after reloadData
最佳答案
研究了UITableView的删除、插入、重载机制。我正在 Github 上维护我的项目来解决这个问题。
https://github.com/VansonLeung/VanTableController
它包含一个工作单元测试。通常,为了使 UITableView 的单元格动画具有动画效果,我们必须执行以下操作:
[tableView_ beginUpdates];
[tableView_ deleteRowsAtIndexPaths: indexPathDelete withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ insertRowsAtIndexPaths: indexPathInsert withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ reloadRowsAtIndexPaths: indexPathReload withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ endUpdates];
我们必须确定删除行、插入行和重新加载行的indexPath 数组,这是一项非常令人讨厌的工作!我的项目工作基本上是一个用于生成这些索引路径的包装器,以使生活更轻松。
关于iphone - UITableView deleteRowsAtIndexPaths 不删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577219/
当我从表中删除行时,我的应用程序崩溃了。这是我检测到错误和堆栈跟踪的来源。谢谢! //delete row from database - (void)tableView:(UITableView *
我对 Swift 和 iOS 比较陌生,我有一个问题 - 我有一个扩展 UITableViewCell 的自定义 SwipeCell 类。这是一个可以左右滑动的单元格,每侧都有按钮。出于某种原因,如果
关于这个问题有几个问题。我已经尝试了所有建议的答案,但还没有任何效果。所以我有这个 func用户收到的拒绝报价。我可以拒绝报价并删除单元格行,但是当只剩下一个单元格时,我得到 fatal error:
我正在尝试借助 deleteRowsAtIndexPaths 折叠和展开 UITableView 部分。似乎什么都没有发生,但我不明白为什么。 NSMutableArray *tmpArray
我正在尝试使用以下代码删除。 [super deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade
尝试成为 ios7 风格,我在点击表格中的单元格时将 UIPickerView 插入到 UITableView 中。这工作正常并且动画效果很好。但是,当我通过调用 deleteRowsAtIndexP
这个问题在这里已经有了答案: crash on deleteRowsAtIndexPaths (5 个答案) 关闭 7 年前。 我试图在稳定 View 中删除一行,但每次我在应用程序中选择删除时它都
我在IB中设计了UIView,并在其上设计了UITableView。在 View Controller 的 viewDidLoad 方法中,我初始化自定义 UITableViewContoller 并
当我尝试将 deleteRowsAtIndexPaths 与动画 UITableViewRowAnimationTop 一起使用时,我要删除的单元格覆盖了上面的单元格(在动画中),然后消失。我做了一个
当我尝试将 deleteRowsAtIndexPaths 与动画 UITableViewRowAnimationTop 一起使用时,我要删除的单元格覆盖了上面的单元格(在动画中),然后消失。我做了一个
我目前有一个包含多个部分的表格 View 。每个部分包含特定日期的数据。每个部分都有一个标题,说明数据是在多少天前输入的。 当使用deleteRowsAtIndexPath删除行时,当该部分中的所有行
我正在尝试很好地删除 mu UITableView 的单元格: - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITab
我不太确定这里发生了什么,但我遇到了一个我正在使用的联系表。在我的表单中,我添加了向联系人添加电子邮件地址的功能。如下图所示,一旦用户点击“添加电子邮件”,一行就会添加到“电子邮件”部分。 但是,在我
这个问题在这里已经有了答案: crash on deleteRowsAtIndexPaths (5 个答案) 关闭 7 年前。 当我从 tableView 中删除一行时发生崩溃。不确定发生了什么。这
我有一个 UITableView 和一个在后台运行的调度程序,从底层数据对象中删除记录。每次删除对象时,我都希望 TableView 相应地更新。 但是当我尝试从 TableView 中删除一行时,我
我想知道是否有可能捕捉到在 deleteRowsAtIndexPaths 期间触发的动画是否结束?我想要做的是从 UITableView 中删除一些所有行,除了我点击的行。接下来我想在同一个 UITa
我在 Swift、iOS 8、Xcode 6 Beta 6 中从我的 tableView 中删除一行时遇到了一些麻烦。每次我尝试删除一行时,我都会收到类似 的错误 Assertion failure
我有一个可能有几百行的表格,所有行的高度都不同。每当用户删除一行时,调用: [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnim
我有一个动态的 TableView,想用动画删除行。 我的代码: struct TableItem { let text: String let id: String let
我正在尝试从 deleteRowsAtIndexPaths 更新我的 tableView 以使用 animation.fade 。所以请你告诉我如何在我有两个数组时更新 tableView? func
我是一名优秀的程序员,十分优秀!