`

iphone图片拉伸的几种方法

 
阅读更多

系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数:

  1.ios4提供的方法:

  - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

  这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域距离左边框的宽度,第二个参数是不拉伸区域距离上边框的宽度,其操作本质是对一个像素的复制拉伸,故没有渐变效果,这也是其缺点所在。

  参数的意义是,如果参数指定10,5。那么,图片左边10个点,上边5个点。不会被拉伸,x坐标为11的点会被横向复制,y坐标为6的点会被纵向复制。注意:只是对一个点像素进行复制到指定的宽度。

  2.ios5提供的方法

  - (UIImage *)resizableImageCapInsets:(UIEdgeInsets)Insets

  其中Insets这个参数的格式是(top,left,bottom,right),从上、左、下、右分别在图片上画了一道线,这样就给一个图片指定了一个矩形区域。只有在框里面的部分才会被拉伸,而框外面的部分则保持改变。比如(20,5,10,5),意思是下图矩形里面的部分可以被拉伸,而其余部分不变。

  3.ios6提供的方法:

  - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

  关于Insets参数,与ios5是相同的,不同的是其后增加了一个拉伸的模式,ios6.0的版本提供了

  UIImageResizingModeTile和 UIImageResizingModeStretch两种模式,从名字就可以看出,是平铺模式和拉伸模式。平铺就是复制你Insets指定的矩形区域块来填充你所指定的图片区域,而拉伸就是通过拉伸你Insets指定的矩形区域块来填充你 所需的图片区域。我想,相较4.0的进步你也看出来了,是明显的吧,相较于以前的,图片的resize由一个点变成了一个矩形块,这样你的所指定块的渐变效果,也是可以呈现出来的。

  只是,如果你需要兼容4.0的机器的话,那么还是需用老的函数来完成对图片的resize操作的。

 

图片拉伸,多用于聊天中的气泡,随着字体的增多而变高变宽。但是要保证边角的不变,只拉伸中间的部分。用到2种方法:
1、(UIImage *)stretchableImageWithLeftCapWidth:(NSInterger) topCapHeight:(NSinterger)
这种方法只适用于ios5以下的版本。它只无限拉伸离最左边像素(第一个参数值) +1和离最上边的像素的值+1(第二个参数值)。
2、(UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)
//方法介绍
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets NS_AVAILABLE_IOS(5_0); // create a resizable version of this image. the interior is tiled when drawn.
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode NS_AVAILABLE_IOS(6_0); // the interior is resized according to the resizingMode
//参数结构
typedef struct UIEdgeInsets {
    CGFloat top, left, bottom, right;  // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;
//用法示例

UIImageView *ImageView=[[UIImageView alloc]init];
[ ImageView  setFrame:CGRectMake(126.0, 80.2, 30.0, 20.0)];
   UIEdgeInsets ed = {0.0f, 10.0f, 0.0f, 10.0f};
   [ImageView setImage:[[UIImage imageNamed:@"xxx.png"]resizableImageWithCapInsets:ed]];
   self.view addSubview:ImageView ];
//以上左10.0,右10.0,是左边10像素以内右边10像素以内不拉伸,中间拉伸。如果上下左右都有参数,就说明九宫格的四个角不拉伸,其他都拉伸

分享到:
评论

相关推荐

    iOS iPhone 图片拉伸源代码

    "iOS iPhone 图片拉伸源代码"这个主题主要涉及如何在iPhone应用中处理图片的伸缩和自适应。在这个压缩包中,可能包含了一个名为"ImageResizer"的源代码文件,它可能是一个类或者工具,用于帮助开发者高效地进行图片...

    iphone4/iphone4s无信号解决方法

    iphone4/iphone4s无信号解决方法

    iPhone开发几种翻页效果

    iPhone开发的几种翻页效果,学习iPhone翻页的一款很好的例子

    iPhone图片转换工具

    iPhone设备上的图片通常采用的是非标准格式,比如HEIC(High Efficiency Image File Format),这是一种由Apple推出的新一代图像文件格式,旨在提供更高效的存储空间,但这种格式在Windows系统中并不普遍支持,导致...

    iPhone 数据持久储存的几种方式

    对于苹果的iPhone设备,有多种方法实现数据的持久存储。以下将详细介绍这些方法。 首先,最基础的是利用iOS内置的文件系统。每个应用程序在iPhone上都有自己的沙盒环境,其中包含Documents、Library、tmp和tmp子...

    解锁IPHONE4的方法

    当你发现自己的iPhone 4忘记密码无法解锁时,有几种方法可以尝试: 1. **使用iTunes恢复模式**:将iPhone连接到电脑,打开最新版本的iTunes。在设备显示在iTunes中后,进入恢复模式。这会删除设备上的所有数据并...

    苹果iphone刷机方法,恢复固件,升级方法.pdf

    苹果 iPhone 刷机方法、恢复固件、升级方法 ...苹果 iPhone 刷机方法是一种复杂的过程,需要用户具备一定的技术知识和经验。用户需要仔细地阅读刷机教程,了解刷机过程中的每一个步骤,以免出现问题。

    iPhone图片名批量修改

    1、使用iPhone或者Ipad等IOS设备拍照后,系统生成的图片名(“IMG_6421.JPG”)不直观,想直接看到照片的拍照时间(“20161116_6421.JPG”)。 2、需要将IOS设备的图片导出到电脑某个文件夹。 3、这个软件真是太好用...

    iPhone进入DFU模式 恢复模式 的三种方法

    ### iPhone进入DFU模式与恢复模式的三种方法详解 #### 一、背景介绍 随着智能手机技术的不断发展,iOS设备如iPhone已经成为人们生活中不可或缺的一部分。然而,由于各种原因,iPhone可能会出现无法正常启动的问题,...

    仿iPhone/iPod动态图片浏览器

    仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器

    iPhone狂:约会iPhone

    然而,由于正文部分并未提供具体的信息或数据,我们将基于标题和描述来探讨与iPhone相关的几个重要知识点。 ### iPhone基础知识 #### 1. 什么是iPhone? iPhone是由苹果公司设计、开发并销售的一系列智能手机。自...

    iphone图片浏览

    在iPhone上进行图片浏览是日常生活中非常常见的操作,无论是在社交应用中分享照片,还是查看存储在设备上的个人照片,都是我们与手机互动的重要部分。本文将深入探讨iPhone的图片浏览功能,包括相册的自动播放特性...

    iPhone之手势切换图片示例程序

    "iPhone之手势切换图片示例程序"是一个教程,旨在教你如何利用手势识别技术在iPhone应用中实现图片的平滑切换。这个示例程序可能包含了多个步骤,包括设置手势识别器、响应手势事件以及动态更新图片视图。 首先,...

    IPHONE3 解决CMWAP上网方法

    由于中国移动对这两种接入点的策略不同,某些地区的iPhone默认可能只能连接到CMNET,无法连接到CMWAP。 解决这个问题的关键在于配置iPhone的网络设置。在iPhone 3和3GS上,我们可以手动添加一个APN(Access Point ...

    iPhone供应商修改图片

    在IT行业中,"iPhone供应商修改图片"这一主题涉及到的是iOS设备的用户界面定制,特别是针对信号图标的操作。信号图标是用户界面的重要组成部分,它显示了手机的网络连接状态,包括蜂窝数据、Wi-Fi和蓝牙等。对于...

    Iphone开发系列源码——Image图片缩放随着手指

    Iphone开发系列源码——Image图片缩放随着手指Iphone开发系列源码——Image图片缩放随着手指Iphone开发系列源码——Image图片缩放随着手指Iphone开发系列源码——Image图片缩放随着手指Iphone开发系列源码——Image...

    iOS图片拉伸小技巧

    本文将深入探讨iOS中处理图片拉伸的几种方法,以确保在按钮、背景等元素上使用时能保持图像的视觉效果。 首先,我们来看一个例子:假设我们有一张名为"button.png"的图片,其原始尺寸为24×60,设计用于做按钮背景...

    iphone-pdf以图片形式显示

    这种情况下,你可以使用以下方法来查看这些图片形式的PDF: 1. **使用“照片”应用**:如果PDF文件已经被转换为图片并发送到你的iPhone,你可以直接在“照片”应用中查看这些图片。 2. **使用“文件”应用**:打开...

Global site tag (gtag.js) - Google Analytics