- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我实现了一个 tableView 来使行折叠和展开;这是我的类(class)(我遵循 this 教程):
import UIKit
import ChameleonFramework
class AllTeamChantsController: UIViewController, UITableViewDataSource, UITableViewDelegate
{
var ponte: String?
var sections: [Section]!
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
if let stringaPonte = ponte
{
title = stringaPonte
}
sections = [Section(name: "Derby", items: ["coro", "coro", "coro", "coro"]),
Section(name: "Personagi", items: ["coro", "coro", "coro", "coro"]),
Section(name: "Cori", items: ["coro", "coro", "coro", "coro"])]
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
func numberOfSections(in tableView: UITableView) -> Int
{
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
var count = sections.count
for section in sections
{
count += section.items.count
}
return count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let section = getSectionIndex(indexPath.row)
let row = getRowIndex(indexPath.row)
if row == 0
{
let cell = tableView.dequeueReusableCell(withIdentifier: "header") as! AllTeamChantsHeader
cell.titleLabel.text = sections[section].name
cell.toogleButton.tag = section
cell.toogleButton.setTitle(sections[section].collapsed! ? "+" : "-", for: UIControlState())
cell.toogleButton.addTarget(self, action: #selector(AllTeamChantsController.toggleCollapse), for: .touchUpInside)
return cell
}
else
{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as UITableViewCell!
cell?.textLabel?.text = sections[section].items[row - 1]
return cell!
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
let section = getSectionIndex((indexPath as NSIndexPath).row)
let row = getRowIndex((indexPath as NSIndexPath).row)
if row == 0
{
return 50.0
}
return sections[section].collapsed! ? 0 : 44.0
}
// MARK: - Event Handlers
func toggleCollapse(_ sender: UIButton) {
let section = sender.tag
let collapsed = sections[section].collapsed
// Toggle collapse
sections[section].collapsed = collapsed!
let indices = getHeaderIndices()
let start = indices[section]
let end = start + sections[section].items.count
tableView.beginUpdates()
for i in start ..< end + 1 {
tableView.reloadRows(at: [IndexPath(row: i, section: 1)], with: .automatic)
}
tableView.endUpdates()
}
// MARK: - Helper Functions
func getSectionIndex(_ row: NSInteger) -> Int {
let indices = getHeaderIndices()
for i in 0..<indices.count {
if i == indices.count - 1 || row < indices[i + 1] {
return i
}
}
return -1
}
func getRowIndex(_ row: NSInteger) -> Int {
var index = row
let indices = getHeaderIndices()
for i in 0..<indices.count {
if i == indices.count - 1 || row < indices[i + 1] {
index -= indices[i]
break
}
}
return index
}
func getHeaderIndices() -> [Int] {
var index = 0
var indices: [Int] = []
for section in sections {
indices.append(index)
index += section.items.count + 1
}
return indices
}
}
问题是,当我触摸切换按钮时,我的应用程序崩溃了,并且 Xcode 在控制台中向我发送了此消息
"Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to delete row X from section 1, but there are only 1 sections before the update".
谁能帮我解决这个问题吗?我只是尝试查看 numberOfRowsInSection
和 toggleCollapse
方法,但没有发现任何问题。
最佳答案
这是错误:
for i in start ..< end + 1 {
tableView.reloadRows(at: [IndexPath(row: i, section: 1)], with: .automatic)
}
显然,如果我删除第一部分,我必须在第 0 部分而不是 1 部分重新加载 indexPath!这解决了崩溃问题!
关于ios - NSInternalInconsistencyException 更新 Tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638664/
我的 iOS 应用程序出现奇怪的错误。从昨天开始一切都运行良好,今天我对一个与 AppDelegate 无关的 View Controller 做了一些改进,当我试图测试我在模拟器上所做的更改时,我得
所以,我正在尝试一下 iOS 编程。时间不多,但我已经推迟学习太久了。但我被这个奇怪的问题困扰了两天。当我尝试将单元格添加到我的 collectionView 时,出现以下错误。 'NSInterna
我的应用程序发生了奇怪的崩溃(仅限 iPad 的 9.x),我不确定如何调试它,因为日志无助于发现正在发生的事情。 最奇怪的是日志显示Auto layout internal error ,但我的应用
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid updat
我想在 swift 中创建一个弹出窗口,并在用户单击按钮时显示它。我不使用 Storyboard , View 是通过编程创建的。 class CreateNoticePopupViewControl
我在仅限 iOS 12 的 crashlytics 上遇到此崩溃。 有人知道这是什么吗?看起来与推送通知相关,但我们的应用中还没有。 致命异常:NSInternalInconsistencyExcep
我已经阅读了有关此错误的所有内容,但仍然无法确定为什么它会在我的应用程序中发生。 使用后台上下文保存多个 Core Data 对象时出现以下错误: *** 由于未捕获的异常“NSInternalInc
我正在尝试从 UITableView 中删除行 -(void) closePickerViewRow:(id) sender { if(self.pickerIsShown && [self.
我在 IOS 上使用 PhoneGap 2.9.0 并为 iPhone5 构建应用程序。 我正在尝试更改启动画面,我遵循了 phonegap 解释 我的行动: 1. 在 iPhone project
对,我有 5 次观看。其中一个 View 称为 RecordViewController。 (RecordViewController 导致错误)我可以很好地切换 View 。但是一旦我进入记录 Vi
在搜索解决方案后我无法解决这个问题,我有这段代码来列出核心数据中的数据: import UIKit import CoreData class ViewControllerClass: UITable
我遇到了一个问题,我有一个忘记密码选项,我在其中放置了一个带有输入字段的 UIAlertView。 UIAlertView *alertView = [[UIAlertView alloc] init
我想用 Objective-C 做一个带有表搜索的 iOS 应用程序。我试过这个项目: https://github.com/versluis/Table-Search-2015 现在我尝试在导航 V
我在 View Controller 之间切换时遇到问题。 我的 md360AppDelegate.h header 如下所示 #import @class md360ViewController;
更新方法: override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingS
每当我尝试使用 AVPlayer 从 url 流式传输歌曲时,我都会收到 NSInternalInconsistencyException 错误。我在结构上制作了一个全局流播放器,以便我的流播放器可以
我正在尝试向我的应用添加容器 View 。但是,它不断崩溃并出现以下错误: 'NSInternalInconsistencyException',原因:'containerView 是必需的。' 我做
尝试保留(更新)标识对象 (persistIdentity:error:) 时版本不匹配失败。对象版本=1229,持久版本=1230。 #10. Crashed: com.twitter.crashl
更新:看来我设法识别了单元格,所以原来的问题解决了。但是现在,截断相同的代码后,出现以下错误: 2012-10-31 15:21:41.857 Laktase[22658:11603] -[NSMan
我有这段代码试图在后台获取 HealthKit 数据。当我第一次运行该应用程序时,代码运行良好,但如果我手动执行后台提取(使用调试命令),我会抛出一个异常并显示一个错误,内容为 reason: 'th
我是一名优秀的程序员,十分优秀!