您的位置:首页 > 产品设计 > UI/UE

AJ学IOS(04)UI之半小时搞定Tom猫

2015-11-29 00:40 453 查看
AJ分享 必须精品

效果图

曾经风靡一时的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中不要 存放大的,不常用的图片
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: