0324的学习笔记----里面最重要的就是一个tom猫的动画,和涉及到的内存问题(创建imageview的两种方式,imagenamed就会形成缓存,占用很多内
来源:互联网 发布:数据整理的意义不包括 编辑:程序博客网 时间:2024/06/08 06:10
还是可以自己对着视频,或者自己有空的时候在做一遍,把按钮做全面的,比较有意思。
看视频的时间是:2015.11.2日上午。
0324:
01-作业—QQ登陆界面
(1) 键盘的退出:[self.view endEditing:YES];
(2)程序的运行过程:程序一启动,首先读取main.storyboard软件描述文件,然后创建箭头所指的控制器,然后创建对应的view,那个view长什么样子,根据storyboard里面创建view,顺便创建子控件,然后显示在手机界面上面。
03-transform的使用(上,下,左,右和缩放transformscale)
CGAffineTransformMakeRotation(M_PI_4);
04-图片浏览器01-基本展示
小案例:使用UIImageView,UILabel,UIButton实现一个综合小案例。
07-图片浏览器04-补充
这个过程确实是精简了很多,用到的一些技巧比较多,已经保存到云盘和csdn上面了。
然后在这个过程中需要注意和掌握的知识点如下:
(1)更换UIImageVIew的图片
(2)了解UIImageVIew的contentMode
(3) 更换UILabel的文字
(4) 在storyboard中设置UILabel的自动换行和文字居中
(5) NSArray和NSDictionary的简单使用
(6) Plist文件的创建和读取
(7) 属性的懒加载
(8) viewDidLoad方法的使用
(9) UIButton的多种状态(普通状态,高亮状态以及失效状态)
08-汤姆猫(帧动画的一个典型—原理:每隔一段时间换个动画)
四个知识点:
****UIImageView的帧动画的使用
****UIImage的2种加载方式
****重复代码的封装抽取
****文档注释的写法—(很好用呢)
这里面有一个素材库,素材库的图片还是蛮多的。(按钮,超级猜图,大众点评,箭头,汤姆猫,喜马拉雅,图片浏览器等);
完善了下李明杰的汤姆猫的代码,果然还是蛮好玩滴,嘻嘻、。
(1)我的jpg如果直接拖文件夹到supporting file还是不行。只得自己建个文件夹。图片文件夹要是绿的才行,不是绿的的话,可以获取到相应的虚拟文件夹里面的文件名,但是无法读取到里面的内容。这一点还是要注意的。
(2)防止内存暴增的两种手段
image加载的两种方式:一种是imagenamed ,另外一种是利用bundle:imagewithcontentsoffile没有缓存,传入文件的全路径.然后就变成内存管理的问题了,在设置一个时间之后,清空images数组,就释放掉了。
-(void)runAnimationWithCount:(int) count name:(NSString *)name
{
//1加载图片
NSMutableArray *images = [NSMutableArray array];
for (int i = 0; i<count; i++) {
NSString *filename = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];
//NSLog(@"%@",filename);(传入文件名,有缓存,在xcode里面看的时候,会明显的看到内存暴增)
//UIImage *image = [UIImage imageNamed:filename];
//imagewithcontentsoffile没有缓存,传入文件的全路径
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:filename ofType:nil];
UIImage *image = [UIImage imageWithContentsOfFile:path];
[images addObject:image];
}
self.tom.animationImages = images;
//2设置需要播放的次数(1次)
self.tom.animationRepeatCount = 1;
//3设置播放时间
self.tom.animationDuration = images.count *0.05;
CGFloat delay = self.tom.animationDuration + 1.0;
[self.tom startAnimating];
//其实是调用了imageview的setanimationimages = nil
//即是: [self.tom setAnimationImages:nil];
[self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:delay];
}
- (IBAction)knock {
//if (self.tom.isAnimating) return;//这一句加了之后是防止覆盖之前的动画。
[self runAnimationWithCount:81 name:@"knockout"];
}
(3)重复代码的封装抽取
当一份代码重复出现在程序的多处地方,就会造成程序的又臭又长,当这份代码的结构要修改的时候,每一处出现这份代码的地方都得修改,造成程序的扩展性很差。因此,要将重复出现的代码抽取到某个方法中,在需要这份代码的地方调用方法即可。
抽取代码的思路:
将相同的代码放到一个方法中,将不同的值当做方法参数传进来。
(4)/** 这是一只显示图片的猫 */ 这种文档性注释比较好,因为对应使用变量或者调用方法的时候会提示,大大方便开发。——哇,好方便好方便啊
汤姆猫比较简单,但是里面有一个非常值得注意的知识点,就是要关注内存的变化。同时知道这个动画是uiimageView带的动画。
09——uibutton和uiimageview的对比
2.UIImageView和UIButton
1> 使用场合
* UIImageView: 如果仅仅是显示图片,不需要监听图片的点击
* UIButton: 既要显示图片,又要监听图片的点击
2> 相同:能显示图片
3> 不同点
* UIButton能处理点击事件, UIImageView不能处理点击事件
* UIButton既能显示图片, 又能显示文字
* UIButton能同时显示两张图片
* UIButton继承自UIControl, 因此默认就能处理事件
* UIImageView继承自UIView, 因此默认就不能处理事件
10———xcode的模拟器和文档安装(妥妥的解决了我的一些困惑啊,就是模拟器里面找不到ios6和ios7的不同)
- 0324的学习笔记----里面最重要的就是一个tom猫的动画,和涉及到的内存问题(创建imageview的两种方式,imagenamed就会形成缓存,占用很多内
- 会说话的tom猫
- 关于uiimage imagenamed内存可能占用大的替代方法
- imageVIew自带的动画效果(类似TOM…
- UIImage imageNamed引起的内存问题1
- UIImage imageNamed引起的内存问题2
- ImageView设置边框的两种方式
- java学习笔记 String对象的两种创建方式
- UIImage imageNamed的释放问题
- 利用运行时,给UIImageView写一个分类,交换里面的setImage的方法,可以重绘图片,提高内存的利用率(要是没有重绘图片,直接使用系统提供的setImag就会造成占用大量的内存问题)
- 匿名内部类创建线程的两种方式
- 创建android逐帧动画的两种方式
- Cocos2dx帧动画的两种创建方式
- Cocos2dx帧动画的两种创建方式
- cocos2dx 帧动画的两种创建方式
- iOS创建动画效果的两种方式
- cocos2dx 帧动画的两种创建方式
- IE浏览器的一个Bug就是不区分ID和Name属性,就连meta里面的name也不放过。
- haproxy安装.负载均衡
- 数组的调试输出
- 15454
- web前端问题总结
- Mac上的markdown文本编辑神器 Mou
- 0324的学习笔记----里面最重要的就是一个tom猫的动画,和涉及到的内存问题(创建imageview的两种方式,imagenamed就会形成缓存,占用很多内
- TreeView控件节点遍历
- iOS应用内支付(IAP)开发中后期的那些坑
- 正则表达式中一些常用的转义字符
- hdu 1385 Minimum Transport Cost(floyd打印最小字典序的最短路径)
- 最短路
- 在Eclipse的SDK Manager中下载SDK
- MySQL的常用命令
- anroid 项目 框架选择