UIView 隐藏/显示动画

2023-12-08

我的简单目标是淡出动画隐藏和显示功能。

Button.hidden = YES;

够简单的。然而,有可能让它淡出而不是消失吗?这样看起来相当不专业。


在 iOS 4 及更高版本中,有一种方法只需使用 UIView 转换方法即可实现此目的,而无需导入 QuartzCore。你可以直接说:

目标C

[UIView transitionWithView:button
                  duration:0.4
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                     button.hidden = YES;
                }
                completion:NULL];

Swift

UIView.transition(with: button, duration: 0.4, 
                  options: .transitionCrossDissolve, 
                  animations: {
                 self.button.isHidden = false
              })

以前的解决方案

米歇尔的解决方案可行,但实际上并不是最好的方法。

Alpha 淡入淡出的问题是,有时不同的重叠视图层在淡出时看起来很奇怪。还有一些其他使用核心动画的替代方案。首先在您的应用程序中包含 QuartzCore 框架并添加#import <QuartzCore/QuartzCore.h>到你的标题。现在您可以执行以下操作之一:

  1. set button.layer.shouldRasterize = YES;然后使用 Michail 在他的答案中提供的 alpha 动画代码。这将防止图层奇怪地混合,但会造成轻微的性能损失,并且如果按钮未在像素边界上精确对齐,则可能会使按钮看起来模糊。

或者:

  1. 使用以下代码来设置淡入淡出动画:

    CATransition *animation = [CATransition 动画]; 动画类型 = kCATransitionFade; 动画持续时间 = 0.4; [button.layer addAnimation:animation forKey:nil];

    按钮.隐藏=是;

这种方法的好处是,您可以交叉淡入淡出按钮的任何属性,即使它们不可设置动画(例如按钮的文本或图像),只需设置过渡,然后立即设置属性即可。

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

UIView 隐藏/显示动画 的相关文章

  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iOS 无法获取人物图像

    我有两个 tableViewController 第一个有联系人列表 另一张显示详细的人员信息 第一个tableViewController的一段代码 ABAddressBookRef addressBook ABAddressBookCr
  • 在 Pages 文稿中打开文本—Swift

    在我的 Swift 2 应用程序中 用户通过文本字段创建一串文本 然后将其共享给另一个应用程序 现在 我只能将文本共享为 txt 文件 这不提供选项Open In Pages当我打开系统共享对话框时 如何才能让用户可以选择将输入的文本作为
  • 从 ios 应用程序到 symfony2 Web 应用程序的登录和管理会话

    我使用 Symfony2 开发了一个 Web 应用程序 我用过FOS用户包用于用户管理和安全 现在 我正在考虑为我的网络开发一个本机 iOS 应用程序 但并不真正知道如何解决从应用程序创建会话的问题 并在整个交互用户应用程序中维护它 换句话
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • 如何从 Xcode 4.5 卸载 iOS 5.0 模拟器

    我已经安装了 Xcode 4 5 由于我编写应用程序是为了好玩 我不打算支持旧版 iOS 版本 并且为了节省 500 GB iMac 上的空间 是否有办法删除它 尝试从 Xcode 包中支持的平台中删除 iPhone iPhoneSimul
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • iOS 何时清理本地应用程序 ./tmp 目录?

    iOS什么时候清理本地应用程序 tmp目录 请注意 这不是一个骗局这个问题 https stackoverflow com questions 3593900 iphone storage in tmp directory 我问的是应用程序
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 为什么 Apple 建议以编程方式创建模态导航控制器?

    以模态方式呈现导航控制器时 以编程方式创建和配置导航控制器对象通常更简单 虽然您也可以使用 Interface Builder 来执行此操作 但通常不建议这样做 事实上 因为我的导航控制器很简单 我宁愿在IB中自定义视图 虽然我不知道确切的
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis
  • iOS 目标 c 中的 AES/CBC/PKCS5Padding 结果与 Android 不同

    我在 Android 应用程序中使用 AES CBC PKCS5Padding 代码就像 private static String TRANSFORMATION AES CBC PKCS5Padding private static St

随机推荐

  • 在 Xcode 4 中重命名项目

    我一定错过了一些明显的东西 但我不知道如何在 Xcode 4 中重命名我的项目 如果我没记错的话 Xcode 3 有一个专门的菜单项 但 Xcode 4 中没有这样的条目 好吧 事实证明这确实是一件小事 您所需要做的就是点击两次slowly
  • 如何根据负载在kubernetes中自动缩放elasticsearch?

    我正在使用 Google Cloud 正在做 RnD 是否可以申请HPAKubernetes 中 Elasticsearch 上的 水平 Pod 自动缩放 I did elasticsearch设置于Kubernetes https git
  • 如何在 Windows 上的 Anaconda Python 中安装 Keras 和 Theano?

    我正在尝试使用以下 Keras 包在 Python 中处理神经网络 from keras utils import np utils from keras layers core import Dense Activation Dropou
  • 通用方法不适用于“int”类型变量?

    我在使用两个变量时遇到了一些麻烦 int 和 Integer 它们大致相同 但是 如下面的代码所示 它们的行为并不总是相同 这是我的问题 这段代码运行得非常完美 我创建了一个通用方法 printArray 它需要任何类型变量的数组 因为它是
  • 为什么不能降低 Java 子类中方法的可见性?

    当您在子类中重写方法时降低方法的可见性时 为什么编译器会给出错误消息 因为子类的每个实例仍然需要是基类的有效实例 请参阅里氏替换原则 如果子类突然丢失了基类的一个属性 例如 即公共方法 那么它将不再是基类的有效替代品
  • 将活动工作表以 PDF 形式发送到单元格中列出的电子邮件

    我正在尝试使用下面的脚本将 Google 表格文档中的第一张工作表以 PDF 形式发送到电子邮件 要发送到的电子邮件地址列在单元格 A1 中 但是 此脚本将整个电子表格作为 PDF 发送 而不仅仅是第一个工作表 我一直在尝试使用 Stack
  • 为什么我一直收到 .addEventListener is not a function? [复制]

    这个问题在这里已经有答案了 因此 我正在使用 JW Player 除了我正在开发的一项功能外 一切都运行良好 当我运行代码时 我收到控制台错误 未捕获的类型错误 upTop addEventListener 不是函数n 这是代码 var u
  • .NET Framework、CLR 和 Visual Studio 版本号如何相互关联?

    随着最近发布的 NET 4 0 和 Visual Studio 2010 跟踪哪些 NET Framework 版本基于哪个版本的 CLR 构建以及属于哪个版本的 Visual Studio 变得越来越困难 是否有一个明确的表格显示这些关系
  • 将值从 EditText 传递到 TextView

    我想从一个页面的 EditText 中获取值 并将该值显示到另一页面的 TextView 中 我怎样才能做到这一点 如何在 EditText 中存储值 请帮我 感谢您 当您提到 在不同页面上 时 您的意思是在新活动中 对吧 假设这就是您的意
  • 通过 cmd Nodejs 安装 Phonegap 问题 [windows 7]

    我正在尝试使用cmd安装phonegap npm install gphonegap 但它没有安装并给我安装失败消息我粘贴了下面的cmd消息 那么我如何设置代理设置 假设这就是问题 nodejs可以使用它来连接到互联网并完成phonegap
  • 如何使用 SqlCommand 参数指定选择查询的架构名称

    我们数据库中的架构名称是动态的 为什么以下不起作用 public void ReadVersion string connString string schemaName string selectCommand SELECT major
  • apache zeppelin 附加存储库导入

    如何在 zeppelin 中导入附加依赖项 我正在尝试在 apache zeppelin 中导入库 鞍座 但是 import org saddle
  • Ruby 中的 !~ 方法对 String 有何作用

    来自 sawa的回答 https stackoverflow com a 21892359 226255 什么是 do Example re d 0 0687987167581341 0 120311605902415 89 8399554
  • 定义具有相同名称的 git 别名以隐藏原始命令

    我试图使用与现有命令相同的别名作为别名 以便别名隐藏原始命令 防止我从工作树中删除文件 alias rm rm cached diff diff color 不幸的是 这不起作用 有人知道解决方法吗 谢谢 Edit环境color diff
  • 什么时候a>a为真?

    是的 我想我真的是在做梦 我在 AIX 机器上编译并运行了以下代码 AIX 3 5 PowerPC POWER5 processor type IBM XL C C for AIX V10 1 Version 10 01 0000 0003
  • ggplot2:使线上的点的颜色比线的颜色更深

    我想让图表上的每个点的颜色与线条不同 这是示例数据 df lt structure list yrmonth structure c 17167 17167 17167 17198 17198 17198 17226 17226 17226
  • 如何自定义平视通知布局?

    在我的项目中 需要更改平视通知布局 我定制了两个remoteView 一个用于Notification contentView 一个用于Notification bigContentView并成功了 当我想使用时Notification B
  • Git 对于 100,000 个对象来说确实很慢。有修复吗?

    我有一个 新鲜 的 git svn 存储库 11 13 GB 其中包含超过 100 000 个对象 我已经表演过 git fsck git gc 初次结账后在仓库上 然后我尝试做一个 git status 执行 git status 所需的
  • 覆盖文本文件上的特定行?

    如何在 c 中覆盖文本文件上的特定行 我有多个变量的值需要写入文件中 仅当新行的大小与旧行的大小相同时才有效 在 模式下打开文件a fseek 到文件的开头 在阅读下一行之前 请使用ftell 记下该行的开头 阅读该行 如果这是你想要的线路
  • UIView 隐藏/显示动画

    我的简单目标是淡出动画隐藏和显示功能 Button hidden YES 够简单的 然而 有可能让它淡出而不是消失吗 这样看起来相当不专业 在 iOS 4 及更高版本中 有一种方法只需使用 UIView 转换方法即可实现此目的 而无需导入