iOS-绘图系统相关学习笔记(一)
2016-03-14 19:43
477 查看
绘图方面的知识
1.使用imageNamed:加载的图片会缓存在内存中,如果再次请求相同图片时则会直接返回图片。
2.可以通过类方法
3.UIImageView实际上可以有两幅图片,一幅赋予
4.UIImageView如何绘制依赖于
UIViewContentModeScaleToFill, //长宽都缩放去适配视图大小
UIViewContentModeScaleAspectFit, //长宽保持比例不变去缩放适配大小。适配最小边
UIViewContentModeScaleAspectFill,//长宽保持比例不变去缩放适配大小。适配最大边
UIViewContentModeRedraw //当视图的bounds改变时,会重绘图片?
UIViewContentModeCenter //图片居中,保持原尺寸大小
UIViewContentModeTop //图片置顶,保持原尺寸大小
UIViewContentModeBottom //图片置底,保持原尺寸大小
UIViewContentModeLeft //图片置左,保持原尺寸大小
UIViewContentModeRight //图片置右,保持原尺寸大小
UIViewContentModeTopLeft //图片置左上方,保持原尺寸大小
UIViewContentModeTopRight //图片右上方,保持原尺寸大小
UIViewContentModeBottomLeft //图片置左下方,保持原尺寸大小
UIViewContentModeBottomRight //图片置右下方,保持原尺寸大小
5.UIImageView的一些优化建议。
(1)尽可能提供预览图。如果有一些比较大的图片需要被频繁的缩小作为预览图使用。那么可以考虑直接为这些图创建缩小版的预览图片,并把它们缓存起来。这样可以缓解每张图显示时都需要进行放缩操作。
(2)设置的图片尺寸尽量和UIImageView的尺寸相匹配。创建一个和image view当前尺寸大小一致的图片进行设置,要比直接分配一张很大的图片然后设置到image view中放缩要好得多。
(3)尽可能的是图片都为不透明的。除非你是故意设置图像为透明效果的,否则别这么干。
6.图形上下文,就是一个可以绘制图片的地方(想象成一个画板?)。
主要有两种方式获取图形上下文。
(1)创建一个图像上下文。使用
(2)继承UIView,并重写
PS:
1.使用
2.当调用
7.绘图工具集合
一个是UIKIt,一个则是Core Graphics。
(1)如果已经是在当前上下文中,可以直接使用UIKIt进行图形绘制。或者通过
(2)使用Core Graphics必须明确指定一个图形上下文。
8.iOS的绘图系统是非常有效的,并且一旦一个视图已经绘制自身,结果会缓存,这样缓存的图形可以重用而不是从头开始重复绘图操作。
1.使用imageNamed:加载的图片会缓存在内存中,如果再次请求相同图片时则会直接返回图片。
2.可以通过类方法
imageWithContentsOfFile:或
initWithContentsOfFile:来加载图片,不过这两种方式加载的图片不会缓存在内存中?!
3.UIImageView实际上可以有两幅图片,一幅赋予
image属性,另一幅赋予
highlightedImage属性;UIImageView的
highlighted属性的值决定了显示哪一幅。
4.UIImageView如何绘制依赖于
contentMode属性。
UIViewContentModeScaleToFill, //长宽都缩放去适配视图大小
UIViewContentModeScaleAspectFit, //长宽保持比例不变去缩放适配大小。适配最小边
UIViewContentModeScaleAspectFill,//长宽保持比例不变去缩放适配大小。适配最大边
UIViewContentModeRedraw //当视图的bounds改变时,会重绘图片?
UIViewContentModeCenter //图片居中,保持原尺寸大小
UIViewContentModeTop //图片置顶,保持原尺寸大小
UIViewContentModeBottom //图片置底,保持原尺寸大小
UIViewContentModeLeft //图片置左,保持原尺寸大小
UIViewContentModeRight //图片置右,保持原尺寸大小
UIViewContentModeTopLeft //图片置左上方,保持原尺寸大小
UIViewContentModeTopRight //图片右上方,保持原尺寸大小
UIViewContentModeBottomLeft //图片置左下方,保持原尺寸大小
UIViewContentModeBottomRight //图片置右下方,保持原尺寸大小
5.UIImageView的一些优化建议。
(1)尽可能提供预览图。如果有一些比较大的图片需要被频繁的缩小作为预览图使用。那么可以考虑直接为这些图创建缩小版的预览图片,并把它们缓存起来。这样可以缓解每张图显示时都需要进行放缩操作。
(2)设置的图片尺寸尽量和UIImageView的尺寸相匹配。创建一个和image view当前尺寸大小一致的图片进行设置,要比直接分配一张很大的图片然后设置到image view中放缩要好得多。
(3)尽可能的是图片都为不透明的。除非你是故意设置图像为透明效果的,否则别这么干。
6.图形上下文,就是一个可以绘制图片的地方(想象成一个画板?)。
主要有两种方式获取图形上下文。
(1)创建一个图像上下文。使用
UIGraphicsBeginImageContextWithOptions创建一个图形上下文。然后可以在上下文中绘制图片。当完成时,调用
UIGraphicsGetImageFromCurrentImageContext将上下文转成UIImage,然后用
UIGraphicsEndImageContext关闭上下文。
(2)继承UIView,并重写
drawRect:方法。当该函数被调用时,Cocoa已经创建一个图形上下文让你进行图像绘制,并且你所绘制的就是UIView将显示的。(还有个类似的方式就是集成一个CALayer,重写其
drawInContext:)
PS:
1.使用
UIGraphicsBeginImageContextWithOptions不仅创建一个图形上下文,他还让该图形上下文作为当前图形上下文。
2.当调用
drawRect:时,UIView的绘图上下文已经是当前图形上下文了。
7.绘图工具集合
一个是UIKIt,一个则是Core Graphics。
(1)如果已经是在当前上下文中,可以直接使用UIKIt进行图形绘制。或者通过
UIGraphicsPushContext将该上下文成为当前上下文,并在结束绘制后用
UIGraphicsPopContext恢复。
(2)使用Core Graphics必须明确指定一个图形上下文。
8.iOS的绘图系统是非常有效的,并且一旦一个视图已经绘制自身,结果会缓存,这样缓存的图形可以重用而不是从头开始重复绘图操作。
相关文章推荐
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- IE7降低内存和降低CPU的几个技巧
- upload上传单张图片
- 图片引发的溢出危机(图)
- 如何高效的使用内存
- DOS下内存的配置
- XP/win2003下发现1G的内存比512M还慢的解决方法
- 浅析SQL Server中的执行计划缓存(上)
- Enterprise Library for .NET Framework 2.0缓存使用实例
- C#实现把彩色图片灰度化代码分享
- PowerShell中编程清空IE缓存方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- 如何使用C#从word文档中提取图片
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法