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];
}
}