以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置

2024-04-14

我有一个 UITableView,我想以编程方式将一行从位置 N1 移动到位置 N2,并且我希望它能够从旧位置到新位置进行动画处理。我浏览了 UITableView 文档,只看到插入、重新加载和删除。您知道我可以通过编程方式执行此操作的方法吗?

一些注意事项:

  • 我知道我可以同时制作从位置 N1 的删除动画和插入到位置 N2 的动画。这是我的后备方案,但我希望用户明白它确实是从 N1 转向 N2。

  • 我不是在谈论允许用户将其从一个地方拖动到另一个地方。我知道如何做到这一点,我正在寻找一种以编程方式启动和动画移动的方法。


我过去处理过类似的事情,解决方案并不漂亮,但它确实有效。

基本上你必须做一些数学计算来计算该行在屏幕上的位置。然后根据y的财产contentOffset你的UITableView.

你可以这样做:

[myView convertPoint:localPosition toView:nil];

然后你会构建一个新的UIView这与你的观点相同。将其框架设置为直接位于UITableViewCell你正在尝试移动。将其添加为应用程序主视图的子视图UIWindow.

你会想要设置userInteractionEnabled or scrollEnabled to NO在你的UITableView当所有这一切都在进行时,用户就不能在整个过程中弄乱事物的位置(只需记住将其设置回YES当一切都完成动画时)。

然后将其动画到新的位置,然而这是最有意义的。

我了解您可能需要滚动UITableView在这一切的过程中,事情变得相当复杂,但是你can也为滚动设置动画。

当然,您必须对要设置动画的行执行类似的操作to如果您的应用程序中有必要。

就像我说的,这并不容易或漂亮。但是我do了解你想要实现的目标,我认为当它正确实现时,效果是超级棒的。

如果有人对如何在不发疯的情况下实现这一目标有更好的想法,我很想知道,但这种类型的实现是我能做的最好的。

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

以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置 的相关文章

  • 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

    看起来Firebase http www firebase comiOS 实现不支持客户端模型的离线缓存 这在实践中意味着 对于需要身份验证的 Firebase 应用程序 您需要首先进行身份验证并等待 Firebase 完成登录 检查用户身
  • 用于具有转换的非导航应用程序的视图控制器/NIB 架构?

    我正在修补一个 iPad 应用程序 就像许多 iPad 应用程序一样 它不使用 UINavigation 根视图控制系统 因此我没有每个应用程序 视图 的自然所有权 我基本上有两个基本视图 文档列表视图和文档编辑视图 我正在使用 UIVie
  • 保存来自 TrueDepth 相机的深度图像

    我正在尝试保存 iPhone X TrueDepth 相机的深度图像 使用AVCam照片滤镜 https developer apple com library content samplecode AVCamPhotoFilter Lis
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 删除分组 UITableView 中的分隔符

    我需要使用自定义单元格创建分组表格视图 每个单元格必须有一个背景图像 以便一个单元格的图像会接触第二个单元格的图像 依此类推 我尝试将分隔符样式设置为 无 但我仍然得到单元格之间的透明分隔符 请帮我删除单元格之间的空间 祝你有美好的一天 谢
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • MKMapView 拦截/劫持 iPhone 触摸事件

    3 0 SDK 是否存在禁用实时缩放并拦截 MKMapView 放大手势的 bug 我有一些真正简单的代码 因此我可以检测点击事件 但有两个问题 放大手势始终被解释为缩小手势 所有缩放手势都不会实时更新地图视图 在 hitTest 中 如果
  • 在情节提要中将 Segue 拖至自身

    我想将一个 Segue 从我的视图控制器拖到其自身 所以我可以推送该特定视图控制器的 无限 实例 我知道如何在代码中执行此操作 即以编程方式实例化视图控制器 但是 我想尽可能使用 segues 我发现了一些在故事板中进行自我延续的 技巧 但
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容
  • iPhone SDK中的短信正文

    我需要从我的 iPhone 应用程序发送短信 SMS 的正文是以编程方式创建的 因此 当我点击按钮时 短信应用程序应该打开 并在其中预先输入我的消息 有人知道怎么做吗 需要帮忙 提前致谢 世宾 您无法设置短信正文 根据官方 SDK 您可以从
  • 默认情况下在 MPMovies PlayerViewController 中显示字幕

    有什么方法可以在默认情况下由 MPMovies PlayerViewController 加载的电影上显示字幕吗 这部电影在视频中嵌入了字幕 谢谢你 不幸的是 这个功能在MPMoviePlayer播放类 这显然相当烦人 您应该考虑向 App
  • TTTAttributedLabel 可点击截断标记

    我有一个 TTTAttributedLabel 并为其指定了一个自定义属性截断标记 NSAttributedString atributedTruncationToken NSAttributedString alloc initWithS
  • 使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

    我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务 BGTaskScheduler shared register forTaskWithIdentifier Backgroun
  • 如何为 Nslocal 通知设置自定义重复间隔......?

    我是 iphone 开发新手 我正在尝试在我的项目中使用 NslocalNotification 我需要每 2 小时或每两天或每两个月等给出提醒 目前我正在使用 NslocalNotification 重复间隔 但它仅适用于使用 Ncale
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • 带有文本字段的 iPhone AlertView

    我有一个UIAlertView with a UITextField在里面 我想输入mail id并提交于UIAlertView s ok按钮 但是UITextField in the UIAlertView没有回复 请帮助我 thankz
  • 领域:结果 和列表

    是否可以转换Results
  • 无需越狱即可检测iOS9上哪个应用程序处于前台

    我正在尝试记录用户在 iOS9 上的个人应用程序使用情况 我宁愿它不会使用越狱有限的解决方案 不言自明 在越狱手机上执行此应用程序的变体应该不难 https www andyibanez com create mobilesubstrate
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie

随机推荐

  • Date.toString() 显示哪个时区?

    默认情况下 方法执行哪个时区java util Date toString http download oracle com javase 6 docs api java util Date html toString 28 29展示 自从
  • 从服务器下载图像以显示在 CollectionView 上

    我正在开发一个用户可以出售 购买的产品应用程序 该应用程序基于集合视图 集合视图具有集合单元格 其中显示产品图像缩略图 以下代码从服务器获取产品图像 并等待下载所有图像 然后将它们显示在单元格中 以下代码有效 但用户需要等待 10 20 秒
  • 在 Woocommerce 3 中以编程方式更新产品库存

    我非常需要帮助 我正在尝试以编程方式更新 woocommerce 产品库存数量 我们通过一些 JSON 向我们提供了供应商提要 我可以从提要中读取股票 并可以正确地从帖子元中提取数据 我正在使用最新版本的 WP 和 WOO PHP 是 7
  • Android:显示一个对话框以启用 wifi

    我想 如果 wifi 被禁用 向用户显示一个对话框 可以决定他是否要启用或禁用 wifi 好吧 我可以查看 wifi 是否已启用 但我如何显示该设置对话框 这是我正在使用的代码 if wifiMan isWifiEnabled false
  • 在 spring3 控制器上返回“ModelAndView”或“String”哪个更好

    ModelAndView的返回方式 RequestMapping value list method RequestMethod GET public ModelAndView list UserAuth UserAuth user Mod
  • 是否可以在 MVC3 (C#) 中为 `[Display(Name="Something")]` 数据注释使用变量

    不知道为什么 但 MVC3 中的数据注释坚持具有常量值 我只是无法理解错误消息和显示名称等内容 我喜欢这些注释 它们非常易于使用且功能强大 但是如果您需要支持多种语言怎么办 想象一下我有以下模型 public class Person pu
  • 如何根据SSIS中的用户变量值在数据流中使用if..else

    I have a fairly straightforward SSIS package with a number of Data Flow tasks each with data flows for multiple tables l
  • 如何查看导致 clr.dll 中崩溃转储的 C# 代码?

    我有一个 Windows 窗体应用程序 NET 4 它在我的开发计算机上运行良好 但在其他两台测试计算机上崩溃 我可以加载它在 VS2010 中创建的小型转储 选择 使用混合调试 会导致 Visual Studio 明显无休止地滥用 CPU
  • CLR 如何加载 DLL?

    我的假设始终是 CLR 在应用程序域启动时加载了它所需的所有 DLL 然而 我写了一个例子 让我对这个假设提出质疑 我启动我的应用程序并检查加载了多少模块 Process ObjModulesList ProcessModuleCollec
  • 如何 Gammu 发送 php shell_exec windows 7 和 xampp?

    我已经安装了XAMPP最新版本并安装了gammu 在终端中 我可以发送短信或识别我的手机 但如果我在 php shell exec 或 exec 上尝试相同的命令 则会出现问题 命令 C Program Files gammu bin ga
  • 将 boost 序列化与犰狳 datum::nan 值结合使用

    我在我的 C CLI 程序中使用 boost 序列化 并且某些类具有包含一些 double 的数据成员 这些 double 被初始化为 arma datum nan 犰狳库的 非数字 值 我通过 boost archive text oar
  • 如何使用spring AOP切入点表达式拦截返回类型List

    以下是我的方面课程 我正在努力让所有的回报List从我的baserepostitary Aspect Service public class DecryptionAspect AfterReturning value execution
  • 重置 git 设置

    当我尝试下载时this https git01 codeplex com casablancagit repo 我不断得到error RPC failed result 56 HTTP code 200我认为这是因为我弄乱了一些设置 我正在
  • 在iOS中解析连续的JSON流

    我正在努力掌握我正在编写的应用程序的 JSON 技巧 在应用程序端 我有一个 NSInputStream 它通过 CFStreamCreatePairWithSocketToHost 连接到服务器 服务器正在以异步方式为应用程序生成 JSO
  • 如何将对象传递给 Reveal 模态弹出窗口?

    我想在我的 Rails 3 0 3 应用程序中使用 Reveal Modal jQuery 插件 我想要做的是从父对象的索引页创建子对象 现在我有链接将父级的 id 传递给子控制器的 new 方法 然后打开子级的 new html erb
  • 如何在 C# MVC 中从 Google+ 登录迁移到 Google 登录

    我的网站允许用户使用其 Google 帐户注册并登录 我的 C MVC 应用程序使用 Microsoft AspNet Identity Owin 提供的模板功能 我收到了一封来自 Google 的电子邮件 称他们将关闭 Google 该电
  • 在 Eclipse IDE 上使用 VBA [重复]

    这个问题在这里已经有答案了 可能的重复 有没有便宜或免费的 VB6 编程 IDE https stackoverflow com questions 1766514 any cheap or free ides out there for
  • 使用 shell 脚本进行 CGI 编程

    我需要将文本框的内容传递到变量中 即 在 html 页面的文本框中输入的任何内容都需要传递给变量 这是因为我在 linux shell 编程中调用 HTML 以及 CGI 我需要根据需要操纵该变量 你有什么想法去做吗 我需要做的是 我想获取
  • PushSharp 不发送通知

    我有一个简单的代码 PushBroker pushBroker new PushBroker string path HttpContext Current Server MapPath AppSettings CertificatePat
  • 以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置

    我有一个 UITableView 我想以编程方式将一行从位置 N1 移动到位置 N2 并且我希望它能够从旧位置到新位置进行动画处理 我浏览了 UITableView 文档 只看到插入 重新加载和删除 您知道我可以通过编程方式执行此操作的方法