3、UIImageView笔记

UIImageView

设置背景颜色

 imageView.backgroundColor = [UIColor orangeColor];

通过UIImage创建图像,并赋值给 image的image属性

    UIImage *img = [UIImage imageNamed:@"scene1.jpg"];

    

创建image对象,不够大的时候会自动拉伸

   UIImage * image = [UIImage imageNamed:@"back_on"];

   [ image stretchableImageWithLeftCapWidth:50 topCapHeight:20];

    imageView.image =  image;

修改内容类型

    imageView.contentMode = UIViewContentModeScaleAspectFit;

(修改内容类型后,修改后的图片会好看一些)

设置高亮状态下的图片

    imageView.highlightedImage = [UIImage imageNamed:@"scene2.jpg"];

设置高亮状态

    imageView.highlighted = YES;

设置圆角半径

    imageView.layer.cornerRadius = 20;

设置边框宽度

     imageView.layer.borderWidth = 4;

设置边线颜色--layer所在框架为QuartzCore,支持在OS X系统下,在iOS上使用是跨平台的,颜色需要转换成C语言封装的颜色,因为C语言是支持跨平台的语言。

   imageView.layer.borderColor = [[UIColor redColor] CGColor];

减掉超越边界范围的视图

   imageView.clipsToBounds = YES;

图片的播放(此处为设置的全局变量)

UIImageView *imageView;

NSTimer *_timer;

NSMutableArray *images;

int n; 

UIButton *button;

拿到所有图片,放到数组中

NSMutableArray images = [[NSMutableArray alloc] init];

for (int i = 1; i <= 21; i++) {

        NSString *imgName = [NSString stringWithFormat:@"%d.jpg",i];

        UIImage *img = [UIImage imageNamed:imgName];

       [images addObject:img];

    }

方法一:

通过UIImageView自带的方法去播放图片

    imageView.animationImages = images;

动画播放时间

    imageView.animationDuration = 2;

播放次数

    imageView.animationRepeatCount = 1;

启动动画

    [imageView startAnimating];

 

方法二:

接收触摸事件

    imageView.userInteractionEnabled = YES;

 通过NSTimer自定义图片播放

    _timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:nil repeats:YES];

 

通过按钮控制动画播放

    button = [UIButton buttonWithType:UIButtonTypeCustom];

    button.frame = CGRectMake(10, 0, 50, 50);

    

设置按钮名字

    [button setTitle:@"停止" forState:UIControlStateNormal];

    [button setTitle:@"开始" forState:UIControlStateSelected];

    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

    [imageView addSubview:button];

    

为按钮添加事件

    [button addTarget:self action:@selector(buttonAct:) forControlEvents:UIControlEventTouchUpInside];

}

 

响应按钮的点击事件

- (void)buttonAct:(UIButton *)button1 {

   button1.selected = !button1.selected;

方法一:自带播放

  通过判断按钮的状态来实现结束动画

    if (button1.selected == YES) {

        [imageView startAnimating];

    }else {

        [imageView stopAnimating];

    }

方法二:定时器播放

通过判断按钮状态结束或者开始定时器,以达到结束动画或者开始动画的效果

    if (button1.selected == YES) {

        [_timer invalidate];

    }else {

         if (n >= images.count) {

            n = 0;

        }

重新启动一个定时器

        _timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:nil repeats:YES];

    }

}

响应定时器的触发事件

- (void)timer:(NSTimer *)timer {

   UIImage *image = images[n];

    imageView.image = image;

    n++;

    

下标超过数组长度

    if (n >= images.count) {

       n = 0;

       button.selected = YES;

使定时器无效,达到停止动画的效果

        [timer invalidate];

    }

}

 

posted @ 2016-04-17 10:08  C_David  阅读(127)  评论(0编辑  收藏  举报