码迷,mamicode.com
首页 > 其他好文 > 详细

开发进阶07_Segmented Control_播放动画

时间:2014-10-28 00:30:53      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:style   io   color   ar   使用   for   sp   strong   文件   

Segmented Control
 

selectedSegmentIndex:返回当前选中的索引,序号从0开始


 
UIButton和UIImageView的区别
 
1、显示图片
-》UIImageView只能显示一张图片(图片默认会填充整个UIImageView)image\setImage
-》UIButton能显示两张图片(一张是背景,一张是前景)
背景:(背景图片默认会填充整个UIButton)setBackgroundImage:forState
前景:(覆盖在背景上面的图片,按照原有的尺寸显示)setIamge:forState
还能显示文字:setTitle:forState
 
2、点击事件
-》UIImageView默认是不能响应点击事件的
-》UIButton能响应点击事件  :addTarget:action:forControlEvents
3、使用场合
-》UIImageView:只显示图片,不监听点击,点击了图片后不做任何反应
-》UIButton:既显示图片,又监听点击事件,点击图片后做一些其他的事情
4、继承结构
-》UIButton之所以能添加监听器来监听事件,是因为他继承自UIControl
-》UIImageView之所以不能添加监听器来监听事件,是因为他直接继承自UIView
 
 
同样的一个功能,代码设计的时候尽量能想到扩展性

 

@interface ViewController ()

{

    NSDictionary *_dict;

}

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    //1.获得tom.plist的全路径

    //2.声明一个成员变量,在view加载完了之后完成对字典的初始化

    NSBundle *bundle = [NSBundle mainBundle];

    NSString *path = [bundle pathForResource:@"tom" ofType:@"plist"];

    _dict = [NSDictionary dictionaryWithContentsOfFile:path];

    

}

#pragma mark 监听所有按钮点击事件

- (IBAction)btnClick:(UIButton *)sender {

    //取出按钮文字

    NSString *title = [sender titleForState:UIControlStateNormal];

    //根据标题去字典中查找

    int count = [_dict[title] intValue];

    [self playAnim:count fileName:title];

}

 

#pragma mark 动画

- (void)playAnim:(int)count  fileName:(NSString *)fileName

{

    //如果正在播放动画,再点击按钮将没有反应

    if(_tom.isAnimating)

    {

        return;

    }

    //1.创建可变数组

    NSMutableArray *images = [NSMutableArray array];

    

    //2.添加图片

    for (int i = 0; i < count; i++) {

        NSString *name = [NSString stringWithFormat:@"%@_%02d.jpg",fileName,i];

        

        //全路径

        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];

        //没有缓存的加载图片

        UIImage *img = [[UIImage alloc] initWithContentsOfFile:path];

        

        //加载图片(有缓存)

        UIImage *img = [UIImage imageNamed:name];

        [images addObject:img];

    }

    

    //3.设置动画图片(有顺序)

    _tom.animationImages = images;

    

    //4.只播放一次

    _tom.animationRepeatCount = 1;

    

    //5.设置动画播放的时间

    _tom.animationDuration = 0.1 * count;

    

    //6.开始播放动画

    [_tom startAnimating];

    

    

    当图片只使用一次的时候,使用没有缓存的,经常使用的或者到处都使用的还是使用有缓存的方式

    //1.有缓存(无法释放,参数传的是文件名)

    [UIImage imageNamed:@""];

    

    //2.无缓存(用完就会释放,参数传递的是全路径)

    [[UIImage alloc] initWithContentsOfFile:]

}

 

 

@end

 
 
 
 
UIImageView的帧动画
 
//设置需要播放的图片,大师后会按照数组顺序播放
@property (nonatomic , copy) NSArray *animationImages;
 
//动画持续的时间
@property (nonatomic) NSTimeInterval  animationDuration;
 
//动画执行次数(默认情况下是无限重复执行)
@property (nonatomic) NSInteger  animationRepeatCount;
 
//开始动画
- (void)startAnimating;
 
//停止动画
- (void)stopAnimating;
 
//是否在执行动画
- (BOOL)isAnimating;
 
 
格式符补充
 
%03d:每个整数占据3各位置,多出的位置用0填充
比如:
[NSString stringWithFormat:@“%03d”, 0]; 返回的是@“000”
[NSString stringWithFormat:@“%03d”, 7]; 返回的是@“007”
[NSString stringWithFormat:@“%03d”, 12]; 返回的是@“012”
[NSString stringWithFormat:@“%03d”, 123]; 返回的是@“123”

开发进阶07_Segmented Control_播放动画

标签:style   io   color   ar   使用   for   sp   strong   文件   

原文地址:http://www.cnblogs.com/yaofch107/p/4055417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!