AJ学IOS(04)UI之半小时搞定Tom猫
2015-11-29 00:40
453 查看
AJ分享 必须精品
功能全部实现,(关键是素材,没有素材的可以加我微信)
新手也可以很快的完成tom这个很拉轰的ios应用哦
![](http://img.blog.csdn.net/20150319130652978)
![](http://img.blog.csdn.net/20150319130540551)
![](http://img.blog.csdn.net/20150319130821679)
![](http://img.blog.csdn.net/20150319130710783)
![](http://img.blog.csdn.net/20150319130722796)
然后呢你需要准备这些素材。。。
![](http://img.blog.csdn.net/20150319131313244)
拖拽控件吧,因为这一个项目用到的不是很多,用代码写太累了,得不偿失,大家有兴趣的可以自己谢谢纯代码做ui的练习哦不会的可以参考我的前面一篇
拖拽控件,那些东西呢 看图片吧
![](http://img.blog.csdn.net/20150319131422845)
就是这些东西,那个名字的地方在代码中又妙用
另外UIButton的tag属性也被添加了奇妙的数字
下面上代码
这里就是我们要用到的代码了,记得要给弄好的代码前面的圈圈连到ui上面,否则点不点都没用的
你敢相信吗,tom猫就这么几行代码就完成了,不到一个屏幕,大多数还是注释。
说说应该注意的地方吧
这里面内存管理特别重要,我们并没有用ios建议 我们用的
[UIImage imageNamed:name];
而是用了:
[UIImage imageWithContentsOfFile:path];
因为这样我们可以更完美的释放内存
内存在ios中相当重要,客户体验一直是苹果提醒的(据说android5.0还是5.1又漏了。。。其实安卓真的不错,我没有黑android的意思哦,只是希望android能更加茁壮的成长,更加完善。)
方法:
1> 将重复代码复制到新的方法中
2> 根据需要调整参数
关于图像的实例化
imageNamed:系统推荐使用的,但是图像实例化之后的释放由系统负责
如果要自己释放图片,不能使用imageNamed方法!
而需要使用imageWithContentsOfFile
提示:如果放在Images.xcassets中的图片,不能使用imageWithContentsOfFile
Images.xcassets中不要 存放大的,不常用的图片
效果图
曾经风靡一时的tom猫其实***起来那是叫一个相当的easy啊功能全部实现,(关键是素材,没有素材的可以加我微信)
新手也可以很快的完成tom这个很拉轰的ios应用哦
然后呢你需要准备这些素材。。。
拖拽控件吧,因为这一个项目用到的不是很多,用代码写太累了,得不偿失,大家有兴趣的可以自己谢谢纯代码做ui的练习哦不会的可以参考我的前面一篇
拖拽控件,那些东西呢 看图片吧
就是这些东西,那个名字的地方在代码中又妙用
另外UIButton的tag属性也被添加了奇妙的数字
下面上代码
代码
[code]//调用button监听方法 -(IBAction)tomAction:(UIButton *)button{ [self tomAnimationWithName:button.currentTitle count:button.tag]; } //让tom猫动起来,name是要执行动作的名字 count是图片的个数 -(void) tomAnimationWithName:(NSString *) name count:(NSInteger) count { //如果动画正在播放就返回不执行 if (self.tom.isAnimating) { return; } //序列帧动画 播放一组图片 //指定动画图片的数组 NSMutableArray *arrayM = [NSMutableArray array]; //添加动画播放的素材 for (int 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]; arrayM[i] = image; }; //把操作好的UIImage图片放到UIImageView的animationImages当中 把图片数组放Tom控件中 self.tom.animationImages = arrayM; //设置执行一次 [self.tom setAnimationRepeatCount:1]; //设置执行时间 self.tom.animationDuration = arrayM.count * 0.075; //开始执行动画 [self.tom startAnimating]; //结束动画后,清理动画数组 [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration]; }
这里就是我们要用到的代码了,记得要给弄好的代码前面的圈圈连到ui上面,否则点不点都没用的
你敢相信吗,tom猫就这么几行代码就完成了,不到一个屏幕,大多数还是注释。
说说应该注意的地方吧
这里面内存管理特别重要,我们并没有用ios建议 我们用的
[UIImage imageNamed:name];
而是用了:
[UIImage imageWithContentsOfFile:path];
因为这样我们可以更完美的释放内存
内存在ios中相当重要,客户体验一直是苹果提醒的(据说android5.0还是5.1又漏了。。。其实安卓真的不错,我没有黑android的意思哦,只是希望android能更加茁壮的成长,更加完善。)
重构_图像的实例化
重构–抽取代码方法:
1> 将重复代码复制到新的方法中
2> 根据需要调整参数
关于图像的实例化
imageNamed:系统推荐使用的,但是图像实例化之后的释放由系统负责
如果要自己释放图片,不能使用imageNamed方法!
而需要使用imageWithContentsOfFile
提示:如果放在Images.xcassets中的图片,不能使用imageWithContentsOfFile
Images.xcassets中不要 存放大的,不常用的图片
相关文章推荐
- AJ学IOS(03)UI之纯代码实现UI——图片查看器
- AJ学IOS(02)UI之按钮操作 点击变换 移动 放大缩小 旋转
- SQL Server ->> Online Index Rebuilding(联机索引重建)
- iOS开发>学无止境 - 五种创建UIImage的类方法
- iOS开发>学无止境 - 截取UIImage指定大小区域
- iOS开发>学无止境 - UIImage等比缩放
- iOS开发>学无止境 - 自定义导航按钮UIBarButtonItem
- 阿里巴巴内部资料 | 交互设计全档案
- UIImagePickerController
- Vue.js 的一些资源索引
- Android详细的对话框AlertDialog.Builder使用方法
- iOS开发>学无止境 - 多个UIImage合并成一个UIImage
- iOS开发>学无止境 - UIImage图片无限滚动的实现
- iOS开发>学无止境 - UIStackView如何让你的开发更简单
- iOS开发>学无止境 - UITablView上下滑动控制底部按钮的出现和消失
- EasyUI添加tab页签
- iOS开发>学无止境 - UICollectionView自定义布局之风火轮[译]
- 由position: sticky; 想到的
- pat 1007. Maximum Subsequence Sum (25)
- Android中SpannableStringBuilder用法小结