iOS-汤姆猫项目总结

功能分析
点击对应的按钮后,让汤姆猫展现对应的动画

步骤分析
1、搭建UI界面
2、监听按钮点击
3、根据点击的按钮执行对应的动画

知识点:
1、UIImageView帧动画的使用
2、UIImage的2种加载方式
3、重复代码的封装抽取
4、文档注释的写法

UIImageView帧动画相关属性和方法
@property(nonatomic,copy) NSArray *animationImages;
需要播放的序列帧图片数组(里面都是UIImage对象,会按顺序显示里面的图片)
@property(nonatomic) NSTimeInterval animationDuration;
帧动画的持续时间
@property(nonatomic) NSInteger animationRepeatCount;
帧动画的执行次数(默认是无限循环)
- (void)startAnimating;
开始执行帧动画
- (void)stopAnimating;
停止执行帧动画
- (BOOL)isAnimating;
是否正在执行帧动画

UIImage的2种加载方式
方式一:有缓存(图片所占用的内存会一直停留在程序中)
+ (UIImage )imageNamed:(NSString )name;
name是图片的文件名

方式二:无缓存(图片所占用的内存会在一些特定操作后被清除)
+ (UIImage )imageWithContentsOfFile:(NSString )path
- (id)initWithContentsOfFile:(NSString *)path;
path是图片的全路径
方式二对于内存更优化

重复代码的封装抽取:
1、当一份代码重复出现在程序的多处地方,就会造成程序又臭又长,当这份代码的结构要修改时,每一处出现这份代码的地方都得修改,导致程序的扩展性很差
2、因此,要将重复出现的代码抽取到某个方法中,在需要这份代码的地方调用方法即可

抽取代码的思路
1.将相同的代码放到一个方法中
2。将不同的值当做方法参数传进来

代码简摘:(不拖控件,使用纯代码大家界面)

#import "HMViewController.h"@interface HMViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *tom;@end@implementation HMViewController
/**重构代码:1、将重复的代码复制到新方法中2、根据需要调整方法关于图像实例化UIImage  UIImageViewimageName: 系统推荐使用,但是图像实例化之后的释放由系统负责如果要自己释放图片不能使用imageName方法!UIImage *image = [UIImage imageNamed:imageName];取而代之的方法:[UIImage imageWithContentsOfFile:<#(NSString *)#>]注意:一遇到ContentsOfFile则必须使用全路径!!提示:如果放在Images.xcassets 中的图片(存放经常使用的图片),不能使用imageWithContentsOfFile:临时使用的大图片放在Supporting Files*/
-(void)tomAnimationWithName:(NSString *)name count:(NSInteger)count{//判断是否在动画if([self.tom isAnimating]) return;//动画图片数组NSMutableArray *imageArray = [NSMutableArray array];int i;for (i = 0 ; i< count ; i++) {NSString *imageName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];//UIImage *image = [UIImage imageNamed:imageName];NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];UIImage *image = [UIImage imageWithContentsOfFile:path];[imageArray addObject:image];}//设置动画数组self.tom.animationImages = imageArray;//重复一次self.tom.animationRepeatCount = 1;//动画时长self.tom.animationDuration = self.tom.animationImages.count * 0.075;//开始动画[self.tom startAnimating];//    //点击事件结束以后释放数组
//    self.tom.animationImages = nil;[self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];}//currentTitle 可以去除按钮当前标题文字
-(IBAction)tomAction:(UIButton *)button{[self tomAnimationWithName:button.currentTitle count:button.tag];
}- (void)viewDidLoad
{[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.
}- (void)didReceiveMemoryWarning
{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

运行结果截图:
开始界面

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10353.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一夜爆火的现象级产品ChatGPT,是AI突破还是昙花乍现?

导语 | 编写代码、翻译小说、参加考试……2022 年末&#xff0c;人工智能聊天机器人 ChatGPT 风靡全网。自 2016 年 AlphaGo 击败围棋世界冠军李世石后&#xff0c;ChatGPT 再次掀起了人工智能发展应用的高潮。它将会给我们带来哪些影响&#xff1f;人工智能的颠覆性应用是否即…

ChatGPT泄露用户聊天记录标题;Adobe加入AIGC战局;阿里大模型前带头人杨红霞加盟字节跳动丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 诸葛智能推出“诸葛CDP 2.0”等三大产品升级 3月22日&#xff0c;容联云旗下场景化数据智能服务商“诸葛智能”举办2023春季发布会&#xff0c;推出客户数据管理平台“诸葛CDP 2.0”、一站式用户行为分析平台“…

刚问世的ChatGPT聊天机器人如何带你把握蔚来Android车载面试

2023年初&#xff0c;一款名为ChatGTP的AI聊天机器人引起了科技圈的骚动。 美国OpenAI公司2022年11月30日正式发布ChatGPT&#xff0c;上线仅5天&#xff0c;ChatGPT的注册用户数突破100万&#xff1b;今年1月末&#xff0c;ChatGPT的月活用户数破亿&#xff0c;就此成为史上用…

2023最新抖音取图小程序源码分享,带会员功能对接支付部署教程

文章目录 系统简介一&#xff1a;代码分享二、上线教程总结 前言 小程序平台&#xff1a;抖音 小程序名称&#xff1a;云云壁纸 版本号&#xff1a;3.0 基础功能&#xff1a;壁纸表情包头像封面图上传、达人入驻、达人管理、广告配置、达人分销、团队管理、数据图表&#xf…

抖音小程序实践四:实现小程序分享

有时候我们要把一个小程序分享给别人&#xff0c;去看套餐、买东西之类的&#xff0c;是一个很常见的功能&#xff0c;但是在接入抖音小程序的时候&#xff0c;初始化右上角三个点并没有分享的入口&#xff0c;那看来不是要申请&#xff0c;就是有别的开发的口子了。下面我们一…

原创精美微信小程序UI界面——抖音版的“知乎”来啦

大家好&#xff0c;我又回来啦>3< 最近其实没做成什么事情&#xff0c;去了一个本地的公司实习了三个月&#xff0c;做的是全栈的工作&#xff0c;对于未来的工作有了一点小小的感触&#xff0c;也增进了一些技术方面的知识。薪资是比去年找的实习涨了1.5倍&#xff0c;不…

微信小程序——仿抖音短视频切换效果

一直以为抖音短视频切换假如用小程序做的话应该是比较简单的&#xff0c;直接用swiper实现就好&#xff0c;但在实际写的过程中才发现没那么简单&#xff0c;要控制的逻辑还是挺多的。 还是先看效果 体验路径 自定义组件系列》》仿抖音短视频切换 代码逻辑 直接调用自定义…

基于Uni-APP多端「h5+小程序+App」高仿抖音小视频|直播|聊天实例

uni-ttLive 基于uni-appuView-ui跨端开发短视频直播聊天实例。 全新研发的一款多端仿制抖音短视频直播聊天项目&#xff0c;基于uniAppVue.jsVuexNvueuViewUIuaPopup等技术开发而成。支持播放/暂停/上下滑动切换、全屏沉浸式体验。 功能特点 导航条底部菜单透明式全屏模式流畅…

最新抖音娱乐测评小程序源码 Thinkphp后端 抖音引流小程序

最新抖音娱乐测评小程序源码 thinkphp后端 抖音引流小程序 附搭建教程 测试环境 NginxPHP7.0MySQL5.6 网站运行目录设置为 /web 数据库配置文件 \source\application\database.php 后台登录地址 http://你的域名/index.php?s/admin/passport/login

谷歌广告账号注册很难?请收下这篇谷歌账号注册指南

做跨境电商这一行业的&#xff0c;相信都会去了解谷歌广告账户。Google广告是Google的广告平台&#xff0c;一般在用户使用引擎搜索的时候推送。为什么大家都要去开通Google广告账户呢&#xff1f;因为Google广告能够快速提升品牌曝光度&#xff0c;特别是当用户使用谷歌浏览器…

谷歌登录登录

一、下载 https://pan.tencent.com/web/share/5b2b9738edeee25803d8ec22ad8967c6 二、打开谷歌 点点点 -- > 更多工具 -- > 扩展程序 点击已解压的扩展程序&#xff0c;添加下载的文件夹 三、然后就能打开啦

Google登录授权详细过程

前言 这篇文章包含了google登录授权从API创建、到使用Java代码完成登录的一个完整demo。 主要为了实现google关联用户的服务&#xff0c;如google merchant center等。 如果仅仅需要使用google邮箱登录&#xff0c;建议由前端实现google登录&#xff1a; 1&#xff0c;国内网…

换IP软件如何使用,一起来看下换IP软件的使用教程

现在的互联网趋势&#xff0c;越多越多的人需要使用动态IP&#xff0c;像爬虫采集、微信用户、网络营销、博客互动、SEO优化等等&#xff0c;都需要使用动态IP去隐藏自身的IP地址去操作&#xff0c;这个使用可以使用换IP软件。其实现在市面上很多换IP软件都支持动态静态线路&am…

如何屏蔽所有国外ip,禁止国外IP访问网站

众说周知一般的CC攻击DDOS攻击等大范围的网络攻击都来自境外&#xff0c;但是如何能大批量的屏蔽国外ip&#xff0c;禁止国外IP访问网站应该怎么做&#xff0c;相信大家都会说加黑名单啊&#xff0c;但是很多人可能还不知道怎么添加黑名单&#xff0c;黑名单的操作也是比较麻烦…

如何换IP?换IP最简单的方法在这里!

许多朋友在日常生活和工作过程中都会遇到需要换IP的情况&#xff0c;因为一个IP频繁的操作就会导致IP被封掉&#xff0c;比如说需要投票&#xff0c;薅羊毛&#xff0c;网络推广等等。更换IP的方式有很多&#xff0c;今天就来给大家介绍一下IP是什么&#xff0c;并且我们应该怎…

网络层:虚拟专用网VPN和网络地址转换NAT

1.网络层&#xff1a;虚拟专用网VPN和网络地址转换NAT 笔记来源&#xff1a; 湖科大教书匠&#xff1a;虚拟专用网VPN和网络地址转换NAT 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 1.1 虚拟专用网VPN 专用网和公用网的特点 专用网络&#xff…

如何修改IP地址?

1.使用cmd的ipconfig 2.查到ip 3.找到网络与Internet设置 4.找到高级网络设置 5.找到连接的网络选择属性 6.编辑IP分配 7.将IP地址设置为手动 8.更改地址 9.修改DNS 10.保存后重新查询为新的ip地址 11.注意事项&#xff1a;在使用前ping下ip地址确保为空闲&#xff0c;类似第二…

如何更换IP?最简单的换IP方法

许多人在工作生活中经常需要用到换IP&#xff0c;比如帮朋友投票&#xff0c;刷单&#xff0c;做网络推广等等。大量的工作需要换IP&#xff0c;单单靠手动切换IP的方法比较耗时间&#xff0c;效果也不好&#xff0c;那么如何更换IP呢&#xff1f;今天黑洞代理为大家整理了几种…

看TAP如何让当代银行与加密交易相融合

支付解决方案是比特币和其他代币颠覆的一大关键领域。总体而言&#xff0c;加密货币的出现有希望解决银行业现有的问题。 尽管加密货币行业茁壮发展&#xff0c;但为了充分发挥其潜力&#xff0c;这项技术必须适应现有系统。 银行卡支付和电子银行已成为最常用的支付结算方式…