iPhone - 如何在按下按钮时制作动画?

2024-04-11

有没有办法在点击 iPhone 按钮时制作自定义动画?我想要类似 App Store 按钮的东西 - 它会显示价格,然后当您单击它时,它会改变颜色并且文本会更改为“立即购买”,然后当您再次单击它时,它会完成购买。

UIViewAnimationTransition 仅包含一些不提供完整功能的值。是否可以用动画来做类似的事情:

- (IBAction) changeButtonDisplay:(id)sender {

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:0.8];
  [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:purchaseButton cache:NO]; //the built in UIViewAnimationTransition values don't provide enough flexibility

  [purchaseButton setTitle:@"Buy Now" forState:UIControlStateNormal];
  [purchaseButton setBackgroundColor:[UIColor greenColor]];
  [purchaseButton addTarget:self action:@selector(purchaseItems:) forControlEvents:UIControlEventTouchUpInside];

  [UIView commitAnimations];

}

此代码有效,将显示正确的过渡,并允许第二次单击执行正确的操作,但标题和颜色会立即更改,而不是平滑的动画。是否可以轻松地执行这样的动画,或者我是否必须创建 UIButton 子类并“手动”执行动画?如果是这样,我必须重写什么方法?


不仅仅是更改按钮的标题和目标等,而是有两个单独的按钮来执行每个操作并且看起来不同。然后,当您按下按钮时,调用一个方法,从其超级视图中删除当前按钮,并将新按钮添加到视图中的位置。将其包装在一些 UIView 动画块中,您应该得到您的动画。

此外,为了使其工作,您需要在按钮的超级视图上设置动画过渡。因此,拥有一个“容器视图”,然后将按钮添加为它的子视图可能会很方便。

伪代码可能看起来像这样:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:buttonConteinerView cache:NO]; //the built in UIViewAnimationTransition values don't provide enough flexibility

[purchaseButton retain];
[purchaseButton removeFromSuperView];

[buttonContainerView addSubview:secondPurchaseButton];

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

iPhone - 如何在按下按钮时制作动画? 的相关文章

  • 如何“旋转”图层/视图(例如,就像在 enigmo 中一样)

    我知道如何根据触摸移动图层 但我也希望能够旋转图像 是否有任何示例代码显示如何执行此操作 或者有人可以给我一些建议吗 Thanks 最简单的方法是使用图层的变换属性 float angle M PI rotate 180 or 1 radi
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • 如何左对齐 Angular Material 拉伸 md 按钮中的文本?

    无需过多修改我自己的 CSS 是否有一个属性或配置可以用来左对齐文本md按钮 https material angularjs org latest api material components button directive mdBu
  • iOS:在代码中访问 app-info.plist 变量

    我正在开发通用应用程序 并且希望访问代码中 app info plist 文件中存储的值 原因 我使用以下方法从故事板动态实例化 UIViewController UIStoryboard storyboard UIStoryboard s
  • WPF:故事板的样式返回“无法在不可变对象实例上对‘颜色’进行动画处理。”

    我有以下 XAML
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • 以编程方式显示 UIView

    我试图 通过动画 显示 UIView 具体来说 我想显示视图的中心部分 然后慢慢地显示它的外边缘 有点像拉开窗帘 我的第一次尝试是简单地将边界矩形设置得更小 并将其动画化为视图框架的完整大小 但这没有达到预期的效果 因为通过更改边界 我也更
  • 如何使用 iPhone SDK 访问身份配置文件和证书?

    我正在尝试使用用户通过打开电子邮件附加的 cer p12 存储的证书 身份来验证我的应用程序上的用户身份 该证书显示在手机设置应用程序的 配置配置文件 组下 有没有什么方法可以使用iphone SDK访问证书 我尝试使用安全框架 但似乎只能
  • 一种简单、干净的方式来切换/交换视图?

    我已经看了几个来源 但我仍然很困惑 我想创建一个具有多个视图的应用程序 只有标准视图 没有表视图或其他任何内容 我可以在其中单击每个视图上的按钮来访问其他视图 我已经看到了多种方法来做到这一点 但对我来说唯一有意义的方法是让应用程序委托负责
  • 将 UIImage 放入 UIButton 的简单方法

    我的 iPhone 应用程序中有一个 UIButton 我将其大小设置为 100x100 我有一个 400x200 的图像 我希望在按钮中显示它 按钮仍然需要保持在 100x100 并且我希望图像缩小以适应 但是 保持正确的纵横比 我想这就
  • 在 ios wifi 网络上查找对等点

    我试图弄清楚如何搜索登录到 wifi 网络且在特定端口上托管应用程序的其他设备 在不知道这些其他设备的地址甚至不知道它们托管的端口的情况下 如何检测它们的存在 一旦发现 我应该能够联系该设备并与其建立连接 最标准的 iOS方式 是使用Bon
  • 在哪里可以找到有关 IOS 日历同步的优秀教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 iPhone 应用程序 如何将新事件与 iOS 日历同步 您可以浏览此 github 代码
  • 为什么我的 x 轴在 iPhone 上不显示核心图?

    编辑 我认为我的问题更好地表述为 我怎样才能有一个不从零开始的 Y 轴 看起来 x 轴总是放置在 y 0 处 但我希望 x 轴位于 y 轴上的某个正数 这是一张包含更多常规数据的图表 我只是希望将 x 轴放置在绘图的最小 y 值 大约 77
  • Jquery Smoothscroll 函数 - 如何控制动画速度?

    有人可以帮助我吗 尝试通过我的平滑滚动和控制速度添加 慢 功能 希望能够实现真正的 平滑滚动 以下是代码 document ready function smoothscroll live click function e html bod
  • 动画导航控制器“后退”按钮

    我在导航控制器层次结构中的视图控制器上有一个自定义按钮 按下该按钮时 会弹出可见的视图控制器 我想使用 UIView 的transform属性来动画关闭视图控制器 它有效 但如果我使用 popViewControllerAnimated Y
  • 将数组从控制器传递到视图

    I have UIView UI视图控制器 在 UIViewController 中 我需要能够将项目插入到 6 个整数的固定数组中 然后 我需要将此数组传递给视图 以便它分析该数组并适当地更新屏幕 我该怎么做呢 我尝试过使用标准 C 数组
  • 在 iPhone 中使用 Soap Web 服务与 wsdl2objc?

    我确实意识到这是一个重复的问题 但是唯一的其他问题已经很老了 所以我想知道是否有人最近有过使用最新版本的经验wsdl2objc http code google com p wsdl2objc 我正在编写一个应用程序 该应用程序将与第三方应
  • 按钮 VisualState Focused 不起作用

    我试图在单击按钮时更改按钮的字体颜色 我尝试了很多不同的方法 但没有一个有效 这是我尝试过的最新方法 我认为应该是答案 但它不起作用 有人可以帮忙吗 PointerOver 工作正常 但单击按钮时 Focused 没有执行任何操作
  • Tkinter 按钮鼠标右键和左键单击有不同的命令

    我正在用 Python 制作扫雷游戏 并使用 tkinter 库来创建 gui 有没有 绑定到 tkinter 按钮两个命令的方法 一个是右键单击按钮时的命令 另一个是单击左键时的命令 通常 按钮仅设计用于单击 但 tkinter 允许您为
  • 如何在 iOS 中通过 wifi 传输大文件

    我下载了WiTap http developer apple com library ios samplecode WiTap Introduction Intro html代码来自苹果网站 它用于通过本地 WiFi 网络传输数据 我正在从

随机推荐

  • 如何使用可见浏览器在 Docker 容器中运行 Selenium 测试?

    如果我想使用可见 非无头 浏览器在 Docker 容器内运行 Selenium 测试 我有哪些选择 我是否需要使用远程显示查看器 例如 VNC 可以在主机上使用浏览器吗 即不在 Docker 容器中的浏览器 这是如何运作的 还有其他选择吗
  • 从另一个应用程序通过 Rscript 启动后,如何将 R Tk 窗口置于前面?

    我有一个脚本 大致如下 if require tcltk2 install packages tcltk2 repos http cran us r project org require tcltk2 base lt NULL done
  • 使用类加载器 AntClassLoader[] 无法找到 taskdef 类 com.android.ant.SetupTask

    我正在尝试从 Beginning Android 4 一书中获取一些简单的 Android 应用程序 我在源代码目录之一上运行 ant 并收到此错误 ant debug Buildfile NowRedux build xml BUILD
  • 如何使用jquery用鼠标移动div?

    我需要能够用鼠标移动 div 并将 div 的新位置存储在数据库中以记住显示 我该怎么做 我强烈建议你研究一下jQuery用户界面 http jqueryui com 以及可拖动的交互 基本上 您需要将代码添加到可拖动的 div 中 假设它
  • 如何在 JavaScript 中生成颜色序列?

    我必须显示一个数字 随着数字值的减小 其颜色从红色统一变为绿色 有没有办法根据值生成该数字的字体颜色 我猜减少数字等于红色到绿色 为什么不简单一点 从你的全红 FF0000开始 然后慢慢努力 在 00FF00 处变为绿色 两者之间有FF F
  • Scrapy CrawlSpider 无法抓取第一个登陆页面

    我是 Scrapy 的新手 正在进行抓取练习 并且正在使用 CrawlSpider 尽管 Scrapy 框架运行良好并且它遵循相关链接 但我似乎无法使 CrawlSpider 抓取第一个链接 主页 登陆页面 相反 它直接抓取由规则确定的链接
  • 有没有办法获得 LibVlc 加载的缓冲区百分比?

    我目前正在制作一个城市网络摄像头应用程序 它使用 libVlc 来显示来自城市网络摄像头的 rtsp 流 我的问题是 是否可以获得流的实际加载状态 我想展示给用户 我可以在 Android Studio runLog 中看到存在某种缓冲 但
  • 如何使 html iframe 的宽度和高度均为 100%? [复制]

    这个问题在这里已经有答案了 如何使 iframe 的窗口宽度和高度为 100 这段代码可能对你有帮助
  • 具有内联 SVG 的响应式剪辑路径

    在具有背景的元素上 图像或纯色并不重要
  • Codeigniter HVMC 模块化分离扩展 URL 重写/路由

    我一直在使用 HVMC 模块化扩展 它工作得很好 但我无法弄清楚如何使用 以及是否可以使用 HVMC 的 URL 路由 基本上 我有一个名为 site 的模块 它是我的主要默认站点控制器 所有其他模块我都没有直接使用 我只是通过调用 ech
  • 如何忽略复选框的点击?

    我需要将一个函数附加到一个复选框 以便单击它不会执行任何操作 这怎么可能 我不想让它变灰 我只是想阻止它切换 如果您希望它可切换 只需附加一个事件侦听器 如下所示 checkboxId on click function e e preve
  • QSTK 的事件分析器函数无法正确绘制

    在佐治亚理工学院的 Coursera 计算投资课程中使用 QSTK 时 Examples EventProfiler tutorial py 末尾的 eventprofiler 函数不会输出视频中显示的图表 见下图 为第 4 周的练习生成的
  • R 是否有相当于 bash 命令 more 的命令?

    如果我想查看 R 中的长输出或变量 是否有与 bash 命令 more 等效的命令 为什么不使用内置的file show more lt function x file lt tempfile sink file on exit sink
  • Azure 容器注册表中的锁是什么

    在 Azure 门户的 Azure 容器注册表边栏选项卡中 左侧有一个 锁定 部分 但我在目录中的任何位置都找不到它 ACR 文档 https learn microsoft com en us azure container regist
  • 获取Streamreader的长度

    我怎样才能得到a的长度StreamReader 据我所知 不会再向其中写入任何内容 我想也许我可以将所有数据传递给MemoryStream 它有一个名为Length 但我陷入了如何将 byte 附加到 a 的问题上MemoryStream
  • 具有多个控件和 generic.xaml 的自定义控件库

    如果我在一个自定义控件库中为两个不同的控件定义两种默认样式 我会收到错误 一个库中是否可以有两个或多个具有默认 generic xaml 的控件 Thanks 对的 这是可能的 推荐的方法是将每个控件的样式放置在其自己的资源字典中 并拥有一
  • 返回用于在 using C# 中使用的变量

    我返回在 using 语句内的 using 语句中创建的变量 听起来很有趣 public DataTable foo using DataTable properties new DataTable do something return
  • 如何在 MVC3 中使用 ViewBag 更改或刷新数据

    我想使用 ViewBag 刷新视图中的数据 是否有可能或者我可以使用其他技术 这是我的示例代码 在我的视图页面中 家庭详情 ViewBag Details 0 Name 在我的控制器中 public ActionResult FamilyD
  • 使用命名范围依赖于下拉列表值的文本框值的 Excel VBA 代码

    我拥有的 我有一个 Excel VBA 自定义用户表单 该表单包含一个下拉列表 行业类别 和文本框 对应行业规范者 对于每个行业类别有一个行业规范者 该类别的缩写版本 The 行业类别 and 行业规范者将始终位于同一行 下拉列表由单元格名
  • iPhone - 如何在按下按钮时制作动画?

    有没有办法在点击 iPhone 按钮时制作自定义动画 我想要类似 App Store 按钮的东西 它会显示价格 然后当您单击它时 它会改变颜色并且文本会更改为 立即购买 然后当您再次单击它时 它会完成购买 UIViewAnimationTr