使用动画重新加载表视图单元格(Swift)

2024-02-07

有没有办法重新加载特定的UITableView具有多个带有动画部分的单元格?

我一直在使用:

self.TheTableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.Right)

但这会为该部分中的所有单元格设置动画。另一种选择是使用:

self.TheTableView.reloadRowsAtIndexPaths(<#indexPaths: [AnyObject]#>, 
                                         withRowAnimation: <#UITableViewRowAnimation#>)

EDIT:

使用 reloadRowsAtIndexPaths 后

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:第 1 节中的行数无效。更新 (5) 后现有节中包含的行数必须等于该节中包含的行数更新前的部分 (4),加上或减去从该部分插入或删除的行数(0 插入,0 删除)以及加上或减去移入或移出该部分的行数(0 移入,0 移动出去)。'

尝试找到一种通过将对象附加到数组中来重新加载表格视图的平滑方法。

在 reloadRowsAtIndexPaths 之前调用 TableView.reloadData() 有效,但动画有问题。还有另一种方法吗?


为什么不直接重新加载单元格呢? indexPath 包含节和行,因此只需跟踪要重新加载的节并填充该数组中的索引即可。

var indexPath1 = NSIndexPath(forRow: 1, inSection: 1)
var indexPath2 = NSIndexPath(forRow: 1, inSection: 2)
self.tableView.reloadRowsAtIndexPaths([indexPath1, indexPath2], withRowAnimation: UITableViewRowAnimation.Automatic)

根据您的评论,您希望更改数组并让 tableView 在更改中设置动画。如果是这种情况,您应该考虑对 UITableViews 甚至使用 beginUpdates() 和 endUpdates()NSFetchedResultController https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/所以它可以干净地处理所有更新动画。

self.tableView.beginUpdates()
// Insert or delete rows
self.tableView.endUpdates()

我建议使用NSFetchedResultController https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/如果您使用 Core Data,因为它简化了整个过程。否则,您必须自己处理更改。换句话说,如果您的数组发生更改,您需要使用 beginUpdates() 和 endUpdates() 手动删除或插入表视图中的行。 如果您不使用 Core Data,请学习this https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html掌握这一切是如何处理的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用动画重新加载表视图单元格(Swift) 的相关文章

  • Cordova 2.4.0 或 2.5.0 或 2.6.0 和 requirejs

    Cordova 2 4 0 及更高版本支持 AMD 加载到 javascript 中 我特别希望将 Cordova 2 5 0 与最新版本的 RequireJS backbone jquery jquery mobile 一起使用 我还没有
  • 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

    我有一个视图控制器 显示带有 UITextView 的视图 并且我想在键盘出现时调整视图的大小 以便 UITextView 不会被键盘覆盖 我几乎在所有情况下都可以正常工作 据我所知 仅当视图控制器以 ModalPresentationSt
  • 为什么performSegueWithIdentifier在viewDidLoad中不起作用?

    我试图在视图控制器上调用 viewDidLoad 后立即触发故事板转场 Segue 附加了一个标识符 当从链接到按钮或其他控件的方法内部调用时 它可以正常工作 但它在 viewDidLoad 内部不起作用 它只是默默地失败了 viewDid
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • Swift 协议扩展实现另一个具有共享关联类型的协议

    考虑以下 protocol Foo typealias A func hello gt A protocol FooBar Foo func hi gt A extension FooBar func hello gt A return h
  • 从 UIPickerView 的选定行设置 UIButton 的标题

    详细场景是这样的 我使用循环创建 10 个按钮并设置 0 9 的标签 点击每个按钮时 我将调用 UIPickerView 在其中加载来自不同数组的数据 到这里我就得到了预期的结果 但我希望 pickerView 中选定的行应设置为相应按钮的
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 每 24 小时触发一次方法

    我正在尝试每天在给定时间触发一个方法 我尝试了一些方法 但我无法真正使其发挥作用 任何意见 将不胜感激 此外 如果无论应用程序是否打开它都会触发 那就更理想了 这可能吗 UI本地通知 http developer apple com lib
  • 无法在 Swift 中对闭包进行弱引用

    Update 我试着不弱化地写一下 好像也没有漏的情况 所以也许这个问题已经没有必要了 在 Objective C ARC 中 当你想让一个闭包能够在闭包内部使用它自己时 该块不能捕获对自身的强引用 否则它将是一个保留循环 因此您可以使闭包
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • Swift,以编程方式更改 UICollectionViewCell 和 UILabel(单元格内)的宽度

    我已将单元格 UICollectionViewCell 的宽度设置为等于 UICollectionView 的宽度 并且我尝试对该单元格中包含的 UILabel 执行完全相同的操作 我认为下面的代码准确地解释了我想要实现的目标 所以我在这里
  • 为什么 iOS 启动屏幕很慢?

    我的 iOS 应用程序启动屏幕大约需要 3 5 秒 我有一张将在启动屏幕后加载的地图 我的用户必须等待启动屏幕加载 然后再等待 3 秒才能加载地图 有没有办法最大限度地减少启动屏幕时间 基本上这种延迟意味着you在启动过程中做了一些非常错误
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • 如何向标准 UIButton 添加徽章? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在标准中添加看起来标准的徽章UIButton 如果不支持半原生 那么实现此目的最简单的方法是什么 示例图片 这是 Sascha
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • 如何在 UICollectionView 中将行居中?

    我有一个UICollectionView与随机细胞 有什么方法可以让我将行居中吗 默认情况下它是这样的 x x x x x x x x x x x x x x 这是所需的布局 x x x x x x x x x x x x 我必须做这样的事
  • 如何更改 SwiftUI 列表中分隔符的颜色?

    我在 SwiftUI 中创建了一个列表 我想更改颜色或删除分隔符 因为在 UIKit 中 我们可以轻松更改 TableView 中分隔符的颜色 下面是 SwiftUI 中列表的代码和 UI 图片 State private var user

随机推荐

  • 最大执行时间错误处理

    我有一个脚本有时会给出最大执行时间达到错误 这是正常现象 不是问题 问题是在这种情况下我会写出具体的错误消息 我该怎么做呢 function say goodbye if connection aborted Perform some ac
  • 如何在 iOS PhoneGap 应用程序中显示自定义启动屏幕旋转器(即白色旋转器)?

    是否可以将默认启动屏幕旋转器颜色更改为白色 将其用于 Spinner hzactivityindicatorview https www cocoacontrols com controls hzactivityindicatorview
  • 如何将 matplotlib 动画转换为 HTML5

    下面是 matplotlib 动画图的代码和here https matplotlib org api as gen matplotlib animation Animation html就是如何保存它 from IPython displ
  • Webpack - 更新 HTML 以包含最新的 [hashed] 包的最佳方式

    我正在使用 webpack 生成散列包文件名 假设我使用静态 HTML CSS 和 JS 自动更新的最佳方法是什么index html指向最新的捆绑包 例如 update to no change 每次有新的捆绑包版本可用时都会自动进行 令
  • 显示12小时和24小时时间

    我想制作一个显示当前时间的网页 当点击 12小时制 按钮时 div区域将显示12小时制的时间 当点击 24小时制 按钮时 分区区域中的时间将以24小时制显示 目前 单击这些按钮时不会发生任何事情 帮助 HTML div div br
  • 如何使用 Python 的 zipfile 模块设置 ZIP 文件中文件的权限(属性)?

    当我从使用 Python 创建的 ZIP 文件中提取文件时zipfile http docs python org library zipfile html模块 所有文件都是不可写 只读等 该文件是在 Linux 和 Python 2 5
  • 用户登录后重定向

    我对 Angular 还很陌生 现在我只是想按照我的意愿设置所有路线并使其工作 Setup 当用户导航到某些页面时 settings对于此示例 应用程序应检查是否有用户已登录 如果有则照常继续 否则用户应该转到登录页面 login 我想要什
  • JQuery 方法和 DOM 属性

    我很困惑何时可以使用 DOM 属性以及何时可以在 Jquery 对象上使用 Jquery 方法 比如说 我使用选择器 var elemSel myDiv find id select 此时 elemSel 是一个 jquery 对象 我将其
  • 无法获取文件创建日期?

    在我的应用程序中 我创建一个目录 然后以下代码起作用 NSDictionary fileAttributes fileManager fileAttributesAtPath trackDirectory traverseLink YES
  • 如何从 lldb 执行一个块(由指针标识)

    我在 iOS 模拟器的 lldb 调试器中 并且有一个块的地址 我想尝试执行它 我尝试了想到的第一件事 见下文 但它不起作用 有没有办法做到这一点 lldb po 0x2c7140 int 2 2912576 lt NSGlobalBloc
  • 用 Jackson 映射一个可以有不同类型的 JSON 字段?

    我从 Web 服务获取 JSON 并且无法影响 JSON 格式 下面的 JSON 代码只是一个示例来说明问题 场cars可以是一个包含以下内容的对象Car对象 也可以是空字符串 如果我可以更改网络服务 我会将空字符串更改为空对象 例如 ca
  • 在 codeigniter 中将数组从控制器传递到模型

    我正在 Codeigniter 中做一个项目 这里我使用 imap 从我的 gmail id 中获取最新的 10 封邮件 这里我想获取所获取邮件的 from 字段 并且我想检查所获取邮件的 from 字段是否在我的数据库中table cli
  • 使用 Devise 的 RoR 中的会话超时消息

    我有一个使用设备保护的应用程序 会话超时为 30 分钟 使用设计 正常导航一切正常 如果用户在超时时单击链接 他们会被重定向回登录屏幕 并显示一条消息 您的会话已过期 请重新登录以继续 非常好 不过我在很多地方都有ajax 如果会话超时并且
  • WebGL / Three.js - 移动相机时,纹理着色的粒子不规则地闪烁

    这是一个jsfiddle http jsfiddle net vko8hzzs 4 我将粒子在使用纹理着色时以及相机移动时 闪烁 的问题放在一起展示 更新 粒子上不应该发生动画或运动 如果当您在视口上单击并拖动并且粒子闪烁或完全改变颜色时
  • bash:grep 根据第一列精确匹配

    我有一个如下所示的 txt 文件 9342432 A1 9342432 1 0 0 0 4392483 A2 4392483 2 0 0 0 4324321 A3 4324321 1 0 0 0 9342432 9342432 2 0 0
  • 点击时如何更改 UIView 的样式?

    我使用以下代码制作不同的 UIView 可点击 它们不是从 UIControl 继承 UITapGestureRecognizer gesture UITapGestureRecognizer alloc initWithTarget se
  • 什么是cgi编程

    CGI编程到底是什么意思 如果我用 C 编写一个cgi程序 在这种情况下 cgi 是什么意思 servlet 环境是经典 cgi 编程的抽象吗 CGI 表示通用网关接口 它是一个 Web 服务器 接收用户请求并进行处理 然后将响应发送回用户
  • 在 ASP.NET 中,什么时候应该使用 Session.Clear() 而不是 Session.Abandon()?

    Session Clear 和 Session Abandon 都会删除会话变量 据我了解 Abandon 结束当前会话 并导致创建新会话 从而导致结束和开始事件触发 在大多数情况下 例如注销用户 最好调用 Abandon 在某些情况下我会
  • 如何在触发器调用的过程中使用COMMIT

    我有下面的触发器 mytrg 它调用一个过程 myproc 如果表1中有任何插入 该过程将更新表2 在表2中更新数据后 我在过程中有 COMMIT 语句 但是当 table1 中有插入时 我收到以下错误 Error report SQL E
  • 使用动画重新加载表视图单元格(Swift)

    有没有办法重新加载特定的UITableView具有多个带有动画部分的单元格 我一直在使用 self TheTableView reloadSections NSIndexSet index 1 withRowAnimation UITabl