动画 UITableViewCell ContentView 在进入编辑模式时淡入淡出

2024-04-17

我在 iPhone Mail.app 和 SMS.app 应用程序中注意到了此功能,但我不确定如何自己实现它。

在标准 UITableView 中,当用户点击“编辑”按钮并且删除按钮移动到位时,随着内容视图向右滑动,它们会执行快速淡入淡出过渡,并被自身的更薄版本所取代(考虑到删除按钮占用的空间)。

我最初认为这是通过在启用编辑模式时调用以下方法来完成的:

[self.tableView reloadRowsAtIndexPaths: [tableView indexPathsForVisibleRows] withRowAnimation: UITableViewRowAnimationFade];

然而,这不可能是正确的,因为它还会淡入淡出过渡删除按钮本身以及单元格具有的任何附件视图(可以说,它看起来很奇怪)。

我想知道,如何强制内容视图重新绘制自身,然后在表格进入编辑模式时使新绘制的版本淡入旧版本?

更新: 感谢 Caleb 的回答,这是最后的代码块,使我能够得到我想要的东西:

我的最终解决方案是子类化 UITableViewCell ,然后将以下代码应用于 setEditing 访问器:

-(void) setEditing: (BOOL)editing animated: (BOOL)animated
{
    [super setEditing: editing animated: animated];

    CATransition *animation = [CATransition animation];
    animation.duration = 0.2f;
    animation.type = kCATransitionFade;

    //redraw the subviews (and animate)
    for( UIView *subview in self.contentView.subviews )
    {
        [subview.layer addAnimation: animation forKey: @"editingFade"];
        [subview setNeedsDisplay];
    }
}

我可能也应该澄清一下。由于性能是最重要的,所以我的单元格 contentView 内的所有内容都是通过 CG(即 drawRect:) 渲染的,因此我无法控制其中具体绘制的任何元素。


当你打电话时动画就会发生-setEditing:animated:在桌子上。然后表调用-setEditing:animated:在每个可见的单元格上。看起来表格单元格的标准行为是调整内容视图的大小、向右移动它们并删除右侧的附件。如果您有自己的单元格并希望在编辑模式下有不同的外观,我认为您可以覆盖-setEditing:animated:根据需要调整单元格内容。

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

动画 UITableViewCell ContentView 在进入编辑模式时淡入淡出 的相关文章

  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 使用 nib 作为带有 nib 类的表节标题

    我想创建一个加载 nib 文件并将其设置为标题 UIView 的节标题 这个 nib 文件还将有一个关联的类 其中插座和操作连接到 因此我想像平常一样使用 nib 加载该类 我在网上搜索并找到了几个类似的答案 但我找不到任何适合我的答案 经
  • 使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的指针类型不兼容

    你能帮我理解和 修复下面的错误吗 我不明白CustomCellView是一个子类UItableViewCell 代码已编译 但警告仍然存在 Incompatible pointer type initializing CustomCellV
  • iOS 13 检查 CLLocationManager 的临时授权状态

    根据 WWDC 视频 https developer apple com videos play wwdc2019 705 https developer apple com videos play wwdc2019 705 当你要求 Al
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • SceneKit unproject Z 文档解释?

    我正在经历一些 SceneKit 概念 而我试图在脑海中巩固的一个概念是 unprojectPoint 我知道该函数将获取 2D 中的一个点并返回 3D 中的一个点 因此具有正确的 Z 值 当我阅读文档时 我读到了以下内容 method u
  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • iOS Swift 在后台下载大量小文件

    在我的应用程序中 我需要下载具有以下要求的文件 下载大量 例如 3000 个 小 PNG 文件 例如 5KB 逐个 如果应用程序在后台继续下载 如果图像下载失败 通常是因为互联网连接丢失 请等待 X 秒然后重试 如果失败Y次 则认为下载失败
  • 是否可以使用UIPageControl来控制UITableView的移动?

    从Apple示例 PageControl 中我们可以知道UIPageControl可以用来控制scrollview中页面的移动 由于 UITableView 是 UIScrollView 的子类 我想使用 UIPageControl 来控制
  • 在 JavaScript 中检测页面是否加载到 WKWebView 中

    如何使用 javascript 可靠地检测到页面已加载到 WKWebView 中 我希望能够检测到这些场景 iOS 和 WKWebView iOS 和 Safari not iOS 关于 UIWebView 有一个类似的问题here htt
  • 在 UITableViewController 中重新排序行后 UI 更新不正确

    因此 我对表中的行重新排序 用户界面最终结果不正确 场景如下 表内容原文 a b c d e 如果我移动第 0 行 当前a 到第 4 行 当前e 我看到的最终结果是 c d e a a 一些背景 该表正在读取 Realm 对象的列表 我确认
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • 在情节提要中将 Segue 拖至自身

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

    我是 Mac 用户 正在尝试安装和导入 C Armadillo 库 以下是我到目前为止所采取的步骤 1 我从其网站下载了犰狳库 2 我仔细阅读了下载文件中的 Readme txt 文件 解释了如何安装它 3 我使用CMake将犰狳下载文件制
  • NSURLCache 不缓存

    我正在使用 Xcode 6 1 6A1030 iOS7 和 iOS8 模拟器 NSURLCache 似乎没有缓存任何东西 我使用 Cache Control 标头 我的服务器返回带有 max age 6000 的 Cache Control
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • 下载进度条在 iOS 企业发行版中没有改变进度

    我正在通过企业分发开发和分发 iPad 应用程序 它们下载并执行良好 因此一切正常 Web 链接 ipa 文件 plist 文件 配置 问题 是 当用户单击链接进行下载时 iPad 中显示下载进度的进度条显示 正在等待 但却是空的并且永远不

随机推荐

  • 从 oauth 身份验证获取电子邮件 (Microsoft)

    如何从微软帐户获取电子邮件 我正在执行以下操作 public ActionResult ExternalLoginCallback string returnUrl AuthenticationResult result OAuthWebS
  • 在 R 中使用 geom_rect 进行时间序列着色

    我正在尝试对时间序列图的某个部分进行着色 有点像经济衰退阴影 类似于底部的图表 这篇关于 Excel 中的经济衰退阴影的文章 https research stlouisfed org tips 200511 recession bars
  • Java ArrayList 和 LinkedList - 在末尾添加元素实现细节

    我对为什么 arraylist 比链表更快的理解是 使用 arraylist 基本上只需要一个操作 更新末尾数组元素的引用 而使用链表你必须做更多的事情 例如创建一个新节点 更新 2 个引用 遍历链表并更新最后一个节点以指向新节点等 但是我
  • 如何使用函数减少值

    嘿 实际上我制作了一个 html 页面 其中有两个部分 当我单击第一部分时 数字会增加 当我单击第二部分时 第二部分中的数字会增加 我使用了 javascript 现在我在每个页面的底部做了一个按钮 我希望当我单击该按钮时 数字应该减少我尝
  • Google Drive Android API:已删除的文件夹在查询中仍然存在

    运行下面的代码 我在平板电脑上使用 Google Drive Android API 创建一个文件夹 几秒钟后 从 PC 上的远程位置删除该文件夹 当我重新运行代码时 API 仍然认为 MyFolder 存在 即使它已被删除并且在平板电脑上
  • 计算非图的所有可能突变[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要根据非常具体的配方构建一个非图解算器 对于每一行 我需要计算所有可能的突变 然后检查该行是否仍然使谜题有效 对于那些不知道非图的人 这
  • Xcode Storyboard 和 xib 连接

    我有一个包含许多视图控制器的故事板项目 我创建了一个名为 connecter h connector m 现在我可以将此类连接到一个 xib 文件吗 请帮我 您可以创建XIB当你创建时connector h and connector m通
  • React:如何模拟 Auth0 以使用 Jest 进行测试

    我正在使用 React react create app 和 TypeScript 使用 Auth0 进行登录 我想用 Jest 编写测试 我发现这个资源基本上是唯一谈论模拟 Auth0 对象的资源 所以我的代码如下所示 import Re
  • 如何将值从 Fragment 传递到 Activity

    我是 Android 开发新手 我试图将值从片段传递到活动 但经过多次尝试后我无法得到答案 这是我的片段 public OtpGentation int OTP this OTP OTP public OtpGentation String
  • 对行的最后一个字段进行排序

    对行列表进行排序 对每行的最后一个字段进行排序 的最简单方法是什么 每行可以有可变数量的字段 就像是 sort k 1 是我想要的 但 sort 1 不采用负数来从末尾而不是从开头选择字段 我还希望能够选择字段分隔符 编辑 要为问题添加一些
  • 在 Azure 应用服务任务 v3 中使用 Web 部署时出现 ERROR_FILE_IN_USE

    类似的问题已被问过多次 但大多数答案都是旧的 并且可能只部分适用 此问题特定于使用 Azure 应用服务部署 任务版本 3 通过 Azure DevOps Azure Pipelines 使用 Web 部署 无法将 Web 包部署到应用服务
  • 如何判断 PostgreSQL 的 Autovacuum 是否在 UNIX 上运行?

    如何判断是否自动清理守护进程在Postgres 9 x中是运行和维护数据库集群的吗 PostgreSQL 9 3 确定 Autovacuum 是否正在运行 这是 UNIX 上的 Postgres 9 3 特有的 对于 Windows 请参阅
  • 在 Codeigniter 中将数组保存到会话

    我在 Codeigniter 中将数组保存到会话数据时遇到问题 var dump this gt session gt userdata data output is boolean false array array 0 gt abc 1
  • MySQL 查询 WHERE 包括 CASE 或 IF?

    奇怪的问题 我的查询看起来像 SELECT DISTINCT ID etcetc if elses over muliple joined tables FROM table1 AS t1 some joins eventually unr
  • Ruby 1.8.7(或 Rails 2.x)中的 String.force_encoding()

    有没有解决办法可以使用String force encoding 在 Ruby 1 8 7 或 Rails 2 x 中 以便它像在 Ruby 1 9 中一样工作 我读过一些关于 require 的内容active support 但这不起作
  • WPF FrameworkElement 未接收鼠标输入

    尝试让 OnMouse 事件出现在子项中FrameworkElement 父元素是一个Panel 以及Background属性不为空 class MyFrameworkElement FrameworkElement protected o
  • 如何在 Nuxt 中导入 nuxt.config.js 中的 mdi 图标模块

    我已经安装了https materialdesignicons com https materialdesignicons com with npm install mdi font 在 nuxt config js 文件中 我不确定如何导
  • 一种出于类型检查目的而对 NamedTuple 进行子类化的方法

    我有一些namedtuple共享一些字段 我有一个接受这些元组的函数 并保证只与共享字段交互 我想在 mypy txt 中对此类代码进行类型检查 代码示例如下 from typing import NamedTuple class Base
  • 使用 JSP 突出显示当前页面链接

    我有一个 jsp 页面 其中有一些链接 div span span ul class nav li class top border li li class item3 a href Polos a li li class item4 a
  • 动画 UITableViewCell ContentView 在进入编辑模式时淡入淡出

    我在 iPhone Mail app 和 SMS app 应用程序中注意到了此功能 但我不确定如何自己实现它 在标准 UITableView 中 当用户点击 编辑 按钮并且删除按钮移动到位时 随着内容视图向右滑动 它们会执行快速淡入淡出过渡