自定义 UITableViewCell 和 setSelected:animated 上的动画:

2024-05-22

我有一个UITableViewCell在drawRect:方法中进行绘制的子类。整个矩形是自定义绘制的,包括背景。 我能够获得非常复杂的单元格,同时保持滚动非常平滑。

我的问题:我打电话[table deselectRowAtIndexPath:path animated:YES];每当视图出现时,为了遵守 Apple 的 HIG。但是,没有动画发生。当然,当我有一个透明的自定义视图(使用子视图创建)(因此 Apple 的背景将出现在下面)时,它就起作用了。现在不行了。

我的drawRect:在“动画时间”期间(大约中间)被调用一次。我认为发生这种情况是因为它将单元格的突出显示属性从 1 动画化到 0,并且当它低于 0.5 时它会捕捉到 0。

我怎样才能动画化这个过渡?我的猜测是使用通常的 beginAnimations: 等,并将单元格对象中的自定义浮点字段从 1 动画到 0。这会调用吗drawRect:反复动画?

Update我设法让它几乎可以工作。我已经重写了 setSelected:animated: 像这样:

- (void) setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:NO];

    if (animated) {
        [CATransaction begin];
        CATransition* animation = [CATransition animation];
        animation.type = kCATransitionFade;
        animation.duration = 0.6;
        [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
        [view.layer addAnimation:animation forKey:@"deselectRow"];
        [CATransaction commit];
    }
}

如果表格视图在屏幕上,这将非常有效。但是,如果我从导航(返回)返回表视图,它不会从选定淡入淡出为未选定,而是从不可见淡出为未选定。什么会导致这种情况?


答案有点晚了,但可能对您和其他人仍然有用。您需要做的是在向超级发送消息之前分配您的自定义选定视图,如下所示:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    UIView *view = [[UIView alloc] initWithFrame:self.frame];
    view.backgroundColor = [UIColor colorWithRed:.9 green:.0 blue:.125 alpha:1.0];

    self.selectedBackgroundView = view;

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

自定义 UITableViewCell 和 setSelected:animated 上的动画: 的相关文章

  • 如何在iOS中查找文本段范围

    如何在 iOS 中找到文本段 又名代码段 范围 意思是 文本段的起始地址和结束地址是多少 I found 这个有趣的帖子 http www pschweitzer fr p 12但它适用于 Android 但不适用于 iOS 经过一些挖掘和
  • 如何从react-native webview获取选择对象

    我有一个应用程序 我使用反应本机 webview 来显示文档 用户可以选择一些文本并执行我提供的一些自定义操作 如何从 webview 获取选择对象into my app 从 0 37 0 开始 RN 中的一个新功能可能会对您有所帮助 里面
  • 将通配符包标识符转换为单个 ID

    我在应用程序商店中有一个使用通配符包标识符的应用程序 我想实现应用内购买 这需要非通配符ID 如何将现有应用的通配符 ID 转换为静态 ID 以进行应用内购买和推送通知 应用程序的捆绑标识符在更新之间必须始终保持相同 但 AppID 实际上
  • cellForRowAtIndexPath 中的框架没有变化

    我想改变x位置框架view细胞内的cellForRowAtIndexPath对于某些条件 我使用了以下代码 但并不改变看法x position frame void viewDidLoad super viewDidLoad UINib n
  • iPhone 应用程序在 iOS 4 上安装后无法启动,但设备重启后可以运行

    我有一个在 iOS 3 0 3 1 3 上运行良好的应用程序 然而 在测试 iOS 4 SDK 特别构建时 该应用程序的行为很奇怪 安装后 使用 Xcode iTunes 或 iPhone 配置实用程序 应用程序会执行以下两项操作之一 应用
  • 具有图形样式的 DatePicker 打破了 iOS 16.0 上的布局限制

    以下代码在 iOS 16 0 的 Xcode 14 0 0 Beta 5 上运行时打破了布局约束 struct ContentView View State var date Date var body some View DatePick
  • 如何检测在 MapView 中选择了哪个注释

    我在地图内做了一些注释 当我点击它们时 我会看到一些信息 并且有一个打开地图的按钮 并且使用我无法接受的正确信息应该可以绘制出我的路线 这是我的代码 我有 2 个双精度数组用于我的经纬度 我从查询中填充了它们 var lat Double
  • 在后台轮询服务器的正确方法

    假设这是可能的 我希望我的 iOS 应用程序在后台时轮询服务器 即基本上每 30 分钟检索一次 URL 的内容 并通知用户是否包含 有趣 的内容 基本上以类似的方式如果您不使用推送通知 则内置邮件客户端假定的工作方式 现在 从我到目前为止的
  • UITableViewCell 上的自动布局问题

    我在使用自动布局时遇到问题xcode 5项目 我在内部使用带有导航控制器的普通视图控制器 我有一个MKMapView在上半部分和一个UITableView在下半部分 我在用storyboards 并配置了原型UITableViewCell
  • 将小箭头添加到 iPhone TableView 单元格中单元格的右侧

    这应该很简单 我有一个带有 TableView 的 iPhone 应用程序 如何将经典的小箭头添加到每个单元格的右侧 只需设置相应的附件类型的财产UITableViewCell cell accessoryType UITableViewC
  • 如何去除 UIImageView 遮罩后的透明区域?

    在我的一个 iOS 应用程序中 我尝试使用以下命令剪切图像的一部分CGImageMask 我已成功使用以下代码屏蔽图像 UIImage maskImage UIImage referenceImage withMask UIImage ma
  • 将 iCloud 存储迁移到本地存储并确保每次应用程序启动时数据都在那里

    基于这里的问题 将 iCloud 数据迁移到本地存储并阻止 iCloud 继续响应 https stackoverflow com questions 25186787 migrate icloud data to local store
  • 如何更改 MGLPolyline 的颜色?

    如何更改 MGLPolyline 的颜色 我曾经看过here https stackoverflow com questions 32024464 customize mglpolyline using mapbox但答案不起作用 我还尝试
  • 使用 AFNetworking 重置基本身份验证凭据

    我正在编写一个 REST 客户端 使用 AFNetworking 并且需要能够在应用程序的单个实例中触发新会话的创建 换句话说 我想 1 通过服务器进行身份验证2 进行一些 REST 调用3 模拟 注销 4 重新与服务器进行身份验证5 进行
  • Phonegap - navigator.app.backHistory() 不适用于 HTML 后退按钮

    在我的应用程序中 我使用phonegap 2 6 对于后退按钮 我使用以下函数 document addEventListener backbutton onBackKeyDown false function onBackKeyDown
  • iOS UIView子类,将透明文本绘制到背景

    我想将文本绘制到 UIView 上的子类上 以便文本从形状中切出 并且视图后面的背景显示出来 就像在 OSX Mavericks 徽标中找到的那样here http www n3rdabl3 co uk wp content uploads
  • nspredicate 数组中的多个项目

    如何使用NSPredicate满足多个条件 NSEntityDescription entity NSEntityDescription entityForName MessageData inManagedObjectContext ma
  • iOS7 XIB 问题。顶部和底部的空白

    我有一个正在设置 ImageView 的视图 自动布局已选中 预览中看起来不错 但当应用程序实际在模拟器上运行时 仅在 iPhone 视网膜 4 英寸模拟器中 顶部和底部显示空白 3 5寸的看起来还不错 使用 iOS7 和 XCODE 5
  • 如何在 iPhone 应用程序中使用正则表达式以 , (逗号)分隔字符串

    我必须读取包含三列的 csv 文件 在解析 csv 文件时 我得到了这种格式的字符串克里斯托弗 巴斯 为心爱的国家哭泣 期末论文 电子邮件受保护 cdn cgi l email protection 我想将三列的值存储在一个数组中 所以我使
  • 如何检查 iOS 分发配置文件是否启用了推送通知?

    我有一个应用程序应该启用推送通知 但由于某种原因没有启用它们 我见过其他人下载并安装了该应用程序 但它甚至没有提示他们授予发送推送通知的权限 正如预期的那样 此应用程序不会出现在其 设置 gt 通知 中 但是 在我的 iPad 上 我能够从

随机推荐

  • STI 在遗传类型之间发生变化。

    在我的模型中 我像这样使用 STI 车辆型号 vehicle rb class Vehicle lt ActiveRecord Base end 车型 car rb class Car lt Vehicle end 总线模型 bus rb
  • 文件夹“Images.xcassets”不存在

    当我在最新的 xcode 版本中打开项目文件时 我在两个弹出窗口中收到错误 文件夹 Images xcassets 不存在 我必须多次单击 确定 才能使弹出窗口消失 我没有采取任何措施来删除此类文件夹 有谁知道我为什么会得到它们 Updat
  • 如何在购物车中显示自定义属性(Magento)

    我尝试了很多东西 但没有一个起作用 我想我可以在产品页面上获取自定义属性 但我想知道 如何在购物车页面中获取它们 属性只是简单的文字 item gt getProduct gt load 将从数据库重新加载所有产品数据 虽然这可行 但请记住
  • 将 JavaScript 数组转换为具有属性的数组

    我有一个像这样的数组从服务器返回响应 111 1010 111 1010 1010 我想将其转换为 JavaScript JSON 如下所示 branch 111 branch 1010 branch 111 branch 1010 bra
  • TinyMCE 的 addButton() 函数中所有可能的设置属性是什么?

    The 文档 http www tinymce com wiki php API3 method tinymce Editor addButton对此还不是很清楚 name 字符串 要添加的按钮名称 设置 对象 带有标题 cmd 的设置对象
  • Google App Engine 中的图像上传

    我正在开发一个网站 用户可以上传与某个位置相关的帖子 然后他们可以添加两到三张照片 我了解如何使用数据存储区或 Blobstore 进行基本上传 但我想将这些照片链接到帖子和用户 然后能够在连接到帖子和用户的所有页面中显示它们 这是一般的想
  • 增加 D3 图中边缘的可点击区域

    我有一个由 d3 制作的图 dagre d3 位于其顶部用于绘制有向图 这给出了我对渲染图表的期望 要编辑构建图表的数据 每个元素都是可单击的 这对于使用标签渲染边缘的情况来说很好 但它们并不总是有标签 导致未标记的边缘很难单击进行编辑 分
  • AdMob 广告未显示

    因此 我使用 Play Services SDK 实施了 AdMob 广告 我已经 按照书本 做了所有事情 但广告不会显示 如果我将 AdView 背景设置为白色 它会显示空白 但不显示广告 我正在使用 Fragments 但我将 AdVi
  • jQuery:确定
  • 是否包含
  • 我有一些包含嵌套的 HTML 代码 ul 元素 我需要为每个元素添加一个 父级 类 li 包含子元素的元素 ul 一个元素中可能直接包含多个元素 li e g li li a a span span ul ul li 我所需要的只是确定一个
  • 将片段部分移出屏幕

    我已经被这个问题难住有一段时间了 我试图将包含在 FrameLayout 中的片段向右移动 以便只有片段的左侧 20 可见 我认为我遇到的问题是父级不会让片段移出其边界 或者我不知道如何移动它 我所尝试的一切只是将片段推到右墙上 然后缩放片
  • 如何让 Spring 控制器从 POJO 返回 CSV? [复制]

    这个问题在这里已经有答案了 给定一个简单的 Java 对象 public class Pojo private String x private String y private String z getters setters 是否有一些
  • 执行卸载之前停止 Windows 服务

    我有一个安装程序 它安装了一些组件 包括 Windows 服务 安装后它将启动使用 CustomAction 安装到系统上的服务 当我卸载应用程序时出现问题 安装程序要求先关闭应用程序 然后再继续 我创建了一个将停止服务的自定义操作 并通过
  • ServiceStack操作命名约定可以被覆盖吗?

    我需要为 ServiceStack 服务定义一个 DTO 类 服务堆栈使用基于类名的约定 因此如果我的类称为 Transmission 则相应的服务将使用 HTTP 操作中使用的类型为 Transmission 的公开元数据 但我已经有了
  • 在 Borland C++ 上使用 #pragma pack 和 #define

    我正在尝试使用 Borland C Builder XE6 打包一些结构 将来 bcc 我正在使用一个库 它使用以下构造来创建结构 ifdef MSC VER define PACKED BEGIN pragma pack push 1 d
  • 如何通过 Kudu Api 动态运行手动部署在门户上的 azure 函数?

    我在门户上部署了一个时间触发器天蓝色功能 每天上午 10 00 运行 然而 现在要求函数也应该在其他时间动态调用和运行 我知道如何使用上述答案中的步骤通过 Kudu Api 动态设置 function json 文件中的触发器here ht
  • UITextField 的自定义字体在编辑模式下发生变化

    我有一个UITextField这是从 xib 加载的 在它的视图控制器中viewDidLoad方法中 我将字体设置为自定义值 该值在 plist file和所有 它显示良好 除非处于编辑模式 此时字体从我的自定义字体切换为默认字体 我认为这
  • 如何查看点击 HTML 按钮时发出的 POST 请求的地址?

    我正在创建一个涉及网络抓取和网络自动化的项目 我想首先提交此表格 http rgsntl rgs cuhk edu hk rws prd applx2 Public tt dsp timetable aspx http rgsntl rgs
  • AWS Route 53 如何实现基于延迟的路由?

    AWS Route 53 可以提供基于延迟的路由策略 请参阅AWS Route 53 的延迟路由策略 http docs aws amazon com Route53 latest DeveloperGuide routing policy
  • jqGrid 按列名排序索引

    简单的问题 是否有函数可以按网格中的名称获取列的当前排序位置 中使用的索引remapColumns方法与中相同colModel大批 重要的是要理解 索引可以不同 如colModel最初使用的jqGrid参数 如果jqGrid使用选项rown
  • 自定义 UITableViewCell 和 setSelected:animated 上的动画:

    我有一个UITableViewCell在drawRect 方法中进行绘制的子类 整个矩形是自定义绘制的 包括背景 我能够获得非常复杂的单元格 同时保持滚动非常平滑 我的问题 我打电话 table deselectRowAtIndexPath