IOS开发-UIImageView基本用法
UIImageView是iOS中用于显示图像(图片、gif、svg等)的视图。
它的主要功能有:
1. 显示图片
UIImageView可以通过image属性显示一张UIImage类型的图片。可以是本地图片、从网络下载的图片等。
2. 设置填充模式
可以通过contentMode属性设置图片在UIImageView内的显示和填充模式。内容模式有:- scaleToFill:拉伸填充整个imageView
- scaleAspectFit:保持纵横比缩放适应imageView
- scaleAspectFill:保持纵横比缩放填充满imageView
- top、bottom、left、right:拉伸填充指定方向
- center:居中不拉伸显示
3. 设置多种交替动画
可以通过animationImages和animationDuration设置多张图片的交替动画。
或者配置UIImageViewAnimation方式来实现更为复杂的动画。
4. 支持用户交互
UIImageView支持用户交互事件,可以得到点击、拖动等事件。
5. 实现自适应布局
UIImageView支持Auto Layout,可以自动适应不同屏幕尺寸。
1. 创建UIImageView实例:
UIImageView *imgview = [[UIImageView alloc] init];
2.设置UIImageView的布局信息:
imgview.frame =CGRectMake((self.view.frame.size.width-100)/2, (self.view.frame.size.height-100)/2, 100, 100);
3. 设置image属性,显示图片:
imgview.image = [UIImage imageNamed:@"icon"]
这里需要使用UIImage类的imageNamed方法传入图片的名称来生成图片,然后赋给imgview的image属性。
4. 设置contentMode属性,控制图片缩放模式:
imageView.contentMode = UIViewContentModeScaleToFill; // 充满
imageView.contentMode = UIViewContentModeScaleAspectFit; // 完整显示
imageView.contentMode = UIViewContentModeScaleAspectFill; // 完整充满这里不做演示。就是三个枚举只,分别用来设置不同的展示方式
5. UIImageView设置圆角的方式
第一种方法:通过设置layer的属性
最简单的一种,但是很影响性能,一般在正常的开发中使用很少.
//设置圆角
imgview.layer.cornerRadius = imgview.frame.size.width / 2;
//将多余的部分切掉
imgview.layer.masksToBounds = YES;
效果:

第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角
//开始对imageView进行画图
UIGraphicsBeginImageContextWithOptions(imgview.bounds.size, NO, 1.0);
//使用贝塞尔曲线画出一个圆形图
[[UIBezierPath bezierPathWithRoundedRect:imgview.bounds cornerRadius:imgview.frame.size.width] addClip];
[imgview drawRect:imgview.bounds];
imgview.image = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();
第三种方法:使用CAShapeLayer和UIBezierPath设置圆角
首先需要导入<AVFoundation/AVFoundation.h>
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imgview.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imgview.bounds.size];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
//设置大小
maskLayer.frame = imgview.bounds;
//设置图形样子
maskLayer.path = maskPath.CGPath;
imgview.layer.mask = maskLayer;
效果图:

这三种方法中第三种最好,对内存的消耗最少,而且渲染快速
IOS开发-UIImageView基本用法的更多相关文章
- iOS开发-UIImageView高效设置Radius
圆角的设置在iOS中随处可见,开发的时候也很方便,但是有的时候如果一个页面有大量的需要设置圆角的图片,容易产生性能问题,UIImageView ios9.0之前设置圆角是会产生离屏渲染的,9.0之后不 ...
- iOS开发宝典:String用法大全
一.NSString 创建字符串. NSString *astring = @"This is a String!"; 创建空字符串,给予赋值. NSString *astri ...
- iOS开发——UIImageView
1.图像点击之后,全屏浏览 - (void)viewDidLoad { [super viewDidLoad]; _myImage=[[UIImageView alloc]initWithFrame: ...
- iOS开发-UIImageView响应点击事件
UIImageView是不能够响应点击事件的,在开发过程中我们需要经常对头像等添加点击事件,上网搜索一番后发现有如下两个方法: 1.找到点击图片Event,添加事件处理函数 UIImageView.u ...
- iOS开发-UIImageView的contentMode属性
UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中.居右,是否缩放等,有以下几个常量可供设定:UIViewContentModeScaleToFillUIView ...
- IOS开发Block详细用法
Block简介: ios4.0系统已开始支持block,在编程过程中,blocks被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数 ...
- IOS开发self.的用法总结
如果声明的是retain类型的,然后使用self.的话此时引用计数会加1,变成1,如果同时又使用了alloc,那么引用计数又加一变成了2,那么如果只是release一次的话就会内存泄漏. 这种情况下的 ...
- iOS开发 Coretext基本用法
转至 http://blog.csdn.net/fengsh998/article/details/8691823 API接口文档. https://developer.apple.com/libra ...
- iOS 开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- iOS开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
随机推荐
- pandas之统计函数
Pandas 的本质是统计学原理在计算机领域的一种应用实现,通过编程的方式达到分析.描述数据的目的.而统计函数则是统计学中用于计算和分析数据的一种工具.在数据分析的过程中,使用统计函数有助于我们理解和 ...
- [Java]Maven构建时报错: "Error:java: 读取E:\XX\XXX..jar时出错; error in opening zip file"
删除本地仓库中对应的jar包,pom.xml再reimport
- elasticsearch升级和索引重建。
1.背景描述 2020年团队决定对elasticsearch升级.es(elasticsearch缩写,下同)当前版本为0.9x,升级到5.x版本.es在本公司承载三个部分的业务,站内查询,订单数 ...
- python利用pyinstaller打包简明教程
转自:https://www.jianshu.com/p/48f6dea265eb pyinstaller简明教程 安装pyinstaller pip install pyinstaller是最简单的 ...
- odoo wizard界面显示带复选框列表及勾选数据获取
实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的 ...
- VUEX(状态管理)之憨憨篇
1.导入vuex包 import vuex from 'vuex' 2.注册vuex到vue中 vue.use(vuex) 3.new vuex.store() 得到一个数据存储对象 var stor ...
- Pillow + pytesseract + tesseract-ocr 破解简单的图形验证码
前言: 我们在做WEB UI自动化测试时,会遇到一些图形验证码,今天就来简单介绍下,如何来识别简单的图形验证码. 一.安装 ◇ Pillow pip3 install Pillow ◇ pytesse ...
- FreeSWITCH使用L16编码通信及raw数据提取
环境:CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.12 一.背景描述 PCM(Pulse Code Modulation,脉冲编码调制)音频数据是 ...
- 音视频八股文(3)--ffmpeg常见命令(2)
07-ffplay命令播放媒体 播放本地文件 播放本地 MP4 视频文件 test.mp4 的命令,从第 2 秒位置开始播放,播放时长为 10 秒,并且在窗口标题中显示 "test time ...
- 2023-03-12:mp3音频解码为pcm,代码用go语言编写,调用moonfdd/ffmpeg-go库。
2023-03-12:mp3音频解码为pcm,代码用go语言编写,调用moonfdd/ffmpeg-go库. 答案2023-03-12: 用github/moonfdd/ffmpeg-go库. 命令如 ...
