UIImageView总结
UIImageView
- UIKit框架提供了非常多的UI控件,但并不是每一个都很常用,有些控件可能1年内都用不上,有些控件天天用,比如UIButton、UILabel、UIImageView、UITableView等等
- UIImageView极其常用,功能比较专一:显示图片
- 能显示图片,不能直接通过addTarget...方法监听点击
1.常见属性
- @property(nonatomic,copy) NSArray *animationImages;
- 显示的动画图片
- @property(nonatomic,retain) UIImage *image;
- 显示的图片
- @property(nonatomic) NSTimeInterval animationDuration;
- 动画图片的持续时间
- @property(nonatomic) NSInteger animationRepeatCount;
- 动画的播放次数(默认是0,代表无限播放)
2.常见方法
- (void)startAnimating;
- 开始动画
- (void)stopAnimating;
- 停止动画
(BOOL)isAnimating;
- 是否正在执行动画
一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片
UIImage *image = [UIImage imageNamed:@"Tom"];
3. contentMode属性
带有scale单词的: 图片有可能会拉伸
- UIViewContentModeScaleToFill(默认)
- 将图片拉伸至填充整个imageView
- 图片显示的尺寸跟imageView的尺寸是一样的
- 带有aspect单词的:图片会保持原来的宽高比
- UIViewContentModeScaleAspectFit
- 保持图片的宽高比,保证刚好能看到整个图片
- UIViewContentModeScaleAspectFill
- 拉伸到图片宽度或者高度跟imageView一样,并且居中显示
- UIViewContentModeScaleAspectFit
- UIViewContentModeScaleToFill(默认)
没有带scale单词的: 图片绝对不会被拉伸
- UIViewContentModeCenter(居中)
- UIViewContentModeTop(居中靠下)
- UIViewContentModeBottom(居中靠下)
- UIViewContentModeLeft(居中靠左
- UIViewContentModeRight(居中靠右)
- UIViewContentModeTopLeft(显示在左上角)
- UIViewContentModeTopRight(显示在右上角)
- UIViewContentModeBottomLeft(显示在左下角)
- UIViewContentModeBottomRight(显示在右下角)
- 图片的属性clipsToBounds = YES(裁剪超出imageView边框的部分)
4. 注意点
- 用initWithImage默认坐标是(0,0),并且是图片的大小
- 不能直接修改OC对象的"结构体属性"的成员
- 取出结构体
- 赋值
5. 修改frame的3种方式
- 直接用CGRectMake函数
- CGPointZero == CGPointMake(0,0);
- 用临时结构体变量
- 使用大括号{}
- 要强制转换类型
6. 帧动画
- 抽取重复代码
- 将相同的代码放入一个新的方法
- 不同的东西变成方法的参数
7. 音频播放
- 导入
- URL就算是本地的(直接拖进来[如果含有中文会出错],不能省略file://
- 必须是全路径
NSURL *url = [NSURL URLWithString:(全路径/本地的(直接拖进来[如果含有中文会出错]))];
AVPlayer *player = [AVPlayer playerWithURL:url];
//不播放,因为player是局部变量,需要定义一个强指针
- 将音频资料添加到Supporting Files中
- 全路径:Finder-->前往-->个人-->资源库(隐藏文件夹)-->developer-->CoreSimulator-->Devices-->设备-->data-->Containers-->Bundle-->Application-->应用-->应用名.app
NSURL *url = [NSURL URLWithString:@"file://名称.扩展名"];
//
AVPlayer *player = [AVPlayer playerWithURL:url];
//不播放,因为player是局部变量,需要定义一个强指针
8. 缓存
- 用imageWithContentsOfFile+全路径
- 放到images.xcassets就会有缓存,会压缩到一个文件中
- 将大图片放入到Supporting Files中,并且添加时选中create groups
- 如果选create folder references则会生成一个文件夹来保存添加的文件
9. 图片的加载方式
- 有缓存
UIIMage *Image = [UIImage imageNamed:@"图片名"];
- 使用场合: 图片较小,使用频率高
- 放到images.xcassets就会有缓存,会压缩到一个文件中
- 无缓存
NSString *file = [[NSBundle mainBundle] pathForResource:@"图片名"];
UIImage *image = [UIImage imageWithContentOfFile:@"图片文件的全路径"];
- 使用场合: 图片较大,使用频率较小
- 不能放入images.xcassets中
- 放入images.xcassets中的图片,只能通过图片名加载图片
10. 延迟做一些事情
[self performSelector:@selector(stand:) withObject:@"123" afterDelay:10];
//10秒后自动调用self的stand: 方法,并且传递@"123"参数
11. 简单播放
//创建一个音频文件
NSURL *url = [NSBundle mainBundle] URLForResource:@"音频文件名" withExtension:@"音频文件的扩展名"];
//创建播放器
AVPlayer *player = [AVPlayer playerWithURL:url];
//播放
[self.player play];
- 从资源库中加载资料用[NSBundle mainBundle]
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 看了看他的代码,发现核心动画(就是把按钮包装成一个礼物盒)其实很简单,就是把一 ...
- UIImageView
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. /***** ...
- 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> 模拟器应 ...
随机推荐
- 基于大量图片与实例深度解析Netty中的核心组件
本篇文章主要详细分析Netty中的核心组件. 启动器Bootstrap和ServerBootstrap作为Netty构建客户端和服务端的路口,是编写Netty网络程序的第一步.它可以让我们把Netty ...
- C# 合并两个数组总结
byte[] b1 = new byte[] { 1, 2, 3, 4, 5 }; byte[] b2 = new byte[] { 6, 7, 8, 9 }; byte[] b3 = new byt ...
- CODING添加ssh提示格式错误的问题
不能去.shh文件夹打开id_rsa.pub文件查看 解决方法: 进入.ssh文件夹,然后右键git bash here 输入代码 cat id_rsa.pub 回车即可
- myeclipse与tomcat,运行jsp程序
一.myeclipse中配置JRE 步骤: 1.选择window->preferences->Java->Installed JREs 2.点击窗口右边的"add" ...
- Java安全之Axis漏洞分析
Java安全之Axis漏洞分析 0x00 前言 看到个别代码常出现里面有一些Axis组件,没去仔细研究过该漏洞.研究记录一下. 0x01 漏洞复现 漏洞版本:axis=<1.4 Axis1.4 ...
- pycharm的selenium设置
如果运行文件,提示 no model named selenium 那就需要添加selenium的安装地址 如上图 在python>lib>site-packages 在pycharm的f ...
- Python 3 快速入门 2 —— 流程控制与函数
本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...
- [TopCoder2014Final]FrozenStandings 解法探究
https://vjudge.net/problem/TopCoder-13460 简要题意:给出 \(n\) 段从 \(1\) 到 \(n\) 编号的等长区间,保证区间的端点互不相同.区间可以选取其 ...
- AT3945 [ARC092D] Two Faced Edges
要求,翻转一条边,强连通分量个数是否会改变. 考虑连通分量个数会改变的因素: 即\(v\to u\)是否成立,以及翻转前,是否有一条\(u \to v\)的路径不经过该条边 以上当只有一个满足时,连通 ...
- 洛谷 P6672 - [清华集训2016] 你的生命已如风中残烛(组合数学)
洛谷题面传送门 题解里一堆密密麻麻的 Raney 引理--蒟蒻表示看不懂,因此决定写一篇题解提供一个像我这样的蒟蒻能理解的思路,或者说,理解方式. 首先我们考虑什么样的牌堆顺序符合条件.显然,在摸牌任 ...