UIImageView
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
/*********UIImage***********/
//由名字直接读取图片
//优点:用时相对较短
//缺点:读取之后会占用内存
//如果图片较小,用名字直接读取
UIImage *imageName = [UIImage imageNamed:@"1.png"];
//UIImageView
UIImageView *imageViewName = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageViewName.image = imageName;
[self.view addSubview:imageViewName];
//由图片的路径读取图片
//优点:读取之后不会占用内存
//缺点:用时相对较长
//如果图片较大,用路径直接读取
//获取图片路径:相对路径
//第一个参数:文件的名字
//第二个参数:文件的类型
NSString *path = [[NSBundle mainBundle] pathForResource:@"map" ofType:@"png"];
UIImage *imagePath = [UIImage imageWithContentsOfFile:path];
//UIImageView
UIImageView *imageViewPath = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageViewPath.image = imagePath;
[self.view addSubview:imageViewPath];
/**********UIImageView-动画效果*************/
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageView.backgroundColor = [UIColor grayColor];
imageView.image = [UIImage imageNamed:@"1.png"];
/****动画效果相关属性****/
//创建图片数组
//开辟内存空间
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:];
for (int i = ; i <= ; i ++) {
[array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"player%d.png",i]]];
}
//设置动画图片,需要接收一个数组,数组里面的类型必须是UIImage类型
imageView.animationImages = array;
//动画时间:数组里面所有的图片转一圈所用时间
imageView.animationDuration = ;
//循环次数:大于0的数:写几就循环几次,结束 0:无限循环
imageView.animationRepeatCount = ;
//tag
imageView.tag = ;
[self.view addSubview:imageView];
//开始动画
[imageView startAnimating];
//UIButton
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(, , , );
button.backgroundColor = [UIColor redColor];
[button setTitle:@"button" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
#pragma mark - 按钮的点击事件:停止或开始动画
- (void)buttonClick:(UIButton *)button{
//找到UIImageView
UIImageView *imageView = (UIImageView *)[self.view viewWithTag:];
//停止动画
// [imageView stopAnimating];
static BOOL isAnimation = YES;
if (isAnimation) {
[imageView stopAnimating];
isAnimation = NO;
}else{
[imageView startAnimating];
isAnimation = YES;
}
}
//*********************************************
//时间
//第一个参数执行动作相隔的时间
//第二个参数通知给谁:self
//第三个参数:执行的相关方法
//第四个参数:nil
//第五个参数:是否重复执行 YES:重复 NO:不重复
// [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timer:) userInfo:nil repeats:YES]; //self.view.bounds 以(0, 0)点为起点,全屏大小的view
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
imageView.image = [UIImage imageNamed:@"back2.jpg"];
[self.view addSubview:imageView]; //动画效果的UIImageView
UIImageView *birdView = [[UIImageView alloc] initWithFrame:CGRectMake(, , 60.5, )];
//tag
birdView.tag = ; //图片数组
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:];
for (int i = ; i <= ; i ++) {
[array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"DOVE%d.png",i]]];
} /**UIImageView的动画属性***/
birdView.animationImages = array;
birdView.animationDuration = ;
birdView.animationRepeatCount = ;
//开始动画
[birdView startAnimating]; [imageView addSubview:birdView]; //控制bird位置
[NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(changeFrame:) userInfo:nil repeats:YES];
}
#pragma mark - 改变bird的位置
- (void)changeFrame:(NSTimer *)timer{
UIImageView *imageView = (UIImageView *)[self.view viewWithTag:];
static int i = ;
[UIView animateWithDuration: animations:^{
imageView.frame = CGRectMake( + (i++ * ), +arc4random()%, 60.5, );
}];
if ( +(i++ * ) > ) {
imageView.frame = CGRectMake(, , 60.5, );
i = ;
}
}
#pragma mark - NSTimer的事件
- (void)timer:(NSTimer *)timer{
NSLog(@"timer");
}
#pragma mark - 按钮的点击事件
- (void)buttonClick:(UIButton *)button{
//UIView的动画效果
//第一个参数:动画执行的时间
//第二个参数:执行动作
// [UIView animateWithDuration:3 animations:^{
// self.view.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
// }]; //第一个参数:动画执行的时间
//第二个参数:动画延迟执行的时间
//第三个参数:动画执行的效果
//第四个参数:执行动作
//第五个参数:执行完要做的动作之后做的操作
[UIView animateWithDuration: delay: options:UIViewAnimationOptionOverrideInheritedOptions animations:^{
self.view.backgroundColor = [UIColor colorWithRed:arc4random()%/255.0 green:arc4random()%/255.0 blue:arc4random()%/255.0 alpha:1.0];
} completion:^(BOOL finished) {
// self.view.backgroundColor = [UIColor orangeColor];
}];
}
UIImageView的更多相关文章
- AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking
我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力.但这究竟是怎么做到的呢?看完这篇文章就明白了. 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类.UIAct ...
- 6. UIImageView 的使用
1. UIImageView 的认识 QQ:853740091 UIImageView 继承UIView,通过他的名字我们也可以看出这个是用来显示图片的 2. 使用方法 UIImageView *im ...
- UI控件(UIImageView)
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; image1_ = [UIImage imageNa ...
- iOS--使用UIImageView进行GIF动图播放
大家好,好久没有跟新了.其实也就昨天到今天的时间. 前言:实际上,GIF动图文件中包含了一组图片及其信息数组,这些信息数据记录着这一组图片中各张图片的播放时长等信息,我们可以将图片和这些信息或取出来, ...
- UIImageView 自带动画+N张图片实现很炫的动画
gitHub上又看到个很炫的动画:https://github.com/MartinRGB/GiftCard-iOS 看了看他的代码,发现核心动画(就是把按钮包装成一个礼物盒)其实很简单,就是把一 ...
- IOS开发之Bug--关于UIImageView的使用
这里是遇到的一个关于使用UIImageView的小bug,bug就是加载不出来图片. 原因:如果图片资源是jpg文件,如果代码没有加后缀.jpg就会出现不加载出来的情况: 添加上.jpg就能加载出来了 ...
- UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果
上一篇博客介绍了如何将XCode创立的项目提交到Git版本控制,这次就直接做一个图片轮播的展示demo,刚好可以把UIScrollView.UIPageControl.UIImageView这三个控件 ...
- iOS中UIImageView的填充模式
UIImageView的填充模式 属性名称 imageV.contentMode枚举属性: @"UIViewContentModeScaleToFill", // 拉伸自适应填满整 ...
- NSBundle控件和UIImageView和UIButton区别
1.NSBundle 1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹 2> 利用mainBundle就可以访问软件资源包中的任何资源 3> 模拟器应 ...
随机推荐
- CDH安装失败了,如何重新安装
1> 删除Agent节点的UUID # rm -rf /opt/cm-5.4.7/lib/cloudera-scm-agent/* 2> 清空主节点CM数据库 进入主节点的Mysql数据 ...
- Int,Long比较重使用equal替换==
首先,==有很多限制,如Integer 类型的值在[-128,127] 期间,Integer 用 “==”是可以的(参考),超过范围则不行,那么使用equal则代替则完全ok public stati ...
- Java中读文件操作
InputStream & Reader InputStream(字节流),如下是InputStream的层次结构: AudioInputStream:音频输入流类,该方法可以: 从外部音频文 ...
- The SQL Server Service Broker for the current database is not enabled
把一个数据恢复至另一个服务器上,出现了一个异常: The SQL Server Service Broker for the current database is not enabled, and ...
- WinFrom 公共控件 Listview 的使用
Listview绑定数据库数据展示与操作使用 1.拖一个Listview控件到项目中先将视图改为Details 2.编辑列 设置列头 添加columnHeader成员 Text 是显示的名称 3. ...
- 【Win10开发】相对布局——RelativePanel控件
我们知道,Win10引入了Universal Windows Platform,那么我们针对不同的平台该有不同的布局,此时我们就需要相对布局,就会用到RelativePanel这个控件.我们不再将控件 ...
- ASP.NET vNext总结:EntityFramework7
ASP.NET vNext总结:EntityFramework7 源码分享:http://www.jinhusns.com/Products/Download/?type=xcj 1.概述 关于EF7 ...
- Debian 7 安装配置总结
最近几天折腾了一下Debian 7 (gnome桌面DVD版,KDE桌面CD版最后会提到),总的来说收获还是挺大的,对比以前使用ubuntu,debian 7给我的感觉像是一个新生婴儿,不带多余的花俏 ...
- 【Java每日一题】20161216
package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1216 { public s ...
- KMP算法-next函数求解
KMP函数求解:一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为KMP算法.KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串 ...