- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Realm Notification 通过插入、修改和删除来更新我的表。
self.results = realm.objects(PostObject.self).sorted(byKeyPath: "id", ascending: false)
notificationToken = results.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in
guard let tableView = self?.tableView else { return }
switch changes {
case .initial:
tableView.reloadData()
break
case .update(_, let deletions, let insertions, let modifications):
tableView.isUserInteractionEnabled = false
tableView.beginUpdates()
tableView.deleteSections(IndexSet(deletions), with: .automatic)
tableView.insertSections(IndexSet(insertions), with: .automatic)
tableView.reloadSections(IndexSet(modifications), with: .automatic)
tableView.endUpdates()
tableView.isUserInteractionEnabled = true
break
case .error(let error):
fatalError("\(error)")
break
}
}
在第一次更新时,表格会正确显示。第二次调用更新时,tableview 开始丢失单元格。像这样:
在这个例子中,删除和修改都是空的,只有插入数组充满了索引。我看到这个问题也是在更新期间滚动 tableview 时引起的。
最佳答案
使用 UITableViewCell
的自定义子类时丢失单元格的一个原因是忘记调用 super.prepareForReuse()
。
Apple 在 https://developer.apple.com/documentation/uikit/uitableviewcell/1623223-prepareforreuse 声明:
If you override this method, you must be sure to invoke the superclass implementation.
一定要调用 super:
override func prepareForReuse() {
super.prepareForReuse()
// your code follows
}
关于ios - UITableView reloadSection 导致缺少显示的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44248177/
我正在尝试重新加载部分并更新部分中的单元格数量,但每次尝试时都会出现错误和崩溃。这是我正在使用的代码: import UIKit import CalendarView import SwiftMom
我在表格 View 中有两个部分。 第 0 部分中的行会在收到远程通知(插入)或计时器过期(删除)时更改。 第 1 部分始终有 8 行,并且会在用户刷新时更改,所有 8 个项目都会更改。 我正在尝试在
我正在使用 Realm Notification 通过插入、修改和删除来更新我的表。 self.results = realm.objects(PostObject.self).sorted(byKe
我正在尝试构建一个类似于 iOS 原生提醒应用的应用。哪里有带有页眉和页脚的项目列表。每个单元格都包含一个 UITextView,它会在用户键入时动态更改单元格高度。页脚 View 包含相同的单元格
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试删除第 100 节,但更新前只有 7 个节”*** 首先抛出调用栈: 我正在尝试制作可折
我的问题如下:有一个由标题组成的表格。当您单击标题时,它会在之后重新启动 [self.tableView reloadSections: [NSIndexSet indexSetWithIndex:
我有一个带有 UITableViewController 的应用程序,最初只有一个部分和一行(其中显示“正在加载...”)。它从互联网获取一些数据,然后进行以下调用: [tableView reloa
我有一个包含多个部分的 UITableView,部分的数量是动态的,也就是说,它们可以随时增加。在 TableView 上重新加载带有动画的部分,其中部分的数量没什么大不了的。我只是这样称呼: [no
当我点击显示/隐藏内容时,我有下一个代码。 func showHideAssets() { isOpenHiddenAssets = !isOpenHiddenAssets tab
由于我们的设计师是个虐待狂,我有一个带有分段控件的 UITableView,可以在不同提要中的两种不同类型的单元格之间切换。这些单元格使用不同的标识符和类出队——这一切都很好。这些单元格共享一个父级但
我有一个包含两个部分(顶部和底部)的 UITableView。当顶部部分(第 0 部分)中的项目被“选中”时,我将它们移动到底部部分(第 1 部分),反之亦然。除了动画,一切都很好。 我正在使用以下应
我的问题看起来很奇怪。我正在使用 Swift 和 iOS9+。 我在 Storyboard 中设置了一个 UIViewController,其中包含一些 View 和一个 tableview。 ( V
我想用一些有趣的动画重新加载 UICollectionView。在 UITableView 中有一个名为 reloadSections:withRowAnimation 的方法。但是在 UIColle
我需要执行 [[self tableView] reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableView
我想显示一个具有多个部分的表格,并且最初只显示 3 个部分元素。当用户点击节页脚时,节页脚会丢失(变为零),并且该节的所有元素将显示给用户。 因此,当用户点击部分页脚时,我调用以下代码: -(void
我有一个使用 Storyboard设计的静态表格 View 。每当我选择一个单元格并调用 reloadSections:withRowAnimation: 时,它都会导致其上方的两个单元格消失,但显示
我正在为我的应用程序的设置 View 使用带有静态单元格的 UITableView。 此表的一个部分包含两个单元格,第二个单元格仅在第一个单元格中包含的 UISwitch 打开时可见。 所以 UISw
尝试展开各个部分,每个部分在展开时都会有两行。它正在崩溃。以下是正在尝试的代码。 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tab
I created 3 headerViews and added check box, when select section0 check box i want to expand cells i
我构建了一个测试目的应用程序,以在重新加载表格视图时测试这三种方法的性能。 // // ViewController.m // TableViewSample // // Created by
我是一名优秀的程序员,十分优秀!