ios图片的拉伸

http://blog.csdn.net/q199109106q/article/details/8615661

  1. - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
  1. // width为图片宽度
  2. rightCapWidth = width - leftCapWidth - 1;
  3. // height为图片高度
  4. bottomCapHeight = height - topCapHeight - 1

经过计算,你会发现中间的可拉伸区域只有1x1

[java] view plain copy

  1. // stretchWidth为中间可拉伸区域的宽度
  2. stretchWidth = width - leftCapWidth - rightCapWidth = 1;
  3. // stretchHeight为中间可拉伸区域的高度
  4. stretchHeight = height - topCapHeight - bottomCapHeight = 1;

因此,使用这个方法只会拉伸图片中间1x1的区域,并不会影响到边缘和角落。

下面演示下方法的使用:

[java] view plain copy

  1. // 左端盖宽度
  2. NSInteger leftCapWidth = image.size.width * 0.5f;
  3. // 顶端盖高度
  4. NSInteger topCapHeight = image.size.height * 0.5f;
  5. // 重新赋值
  6. image = [image stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:topCapHeight];
  1. - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
  1. CGFloat top = 25; // 顶端盖高度
  2. CGFloat bottom = 25 ; // 底端盖高度
  3. CGFloat left = 10; // 左端盖宽度
  4. CGFloat right = 10; // 右端盖宽度
  5. UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
  6. // 伸缩后重新赋值
  7. image = [image resizableImageWithCapInsets:insets];

三、iOS 6.0

在iOS6.0中,UIImage又提供了一个方法处理图片拉伸

[java] view plain copy

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

对比iOS5.0中的方法,只多了一个UIImageResizingMode参数,用来指定拉伸的模式:

  • UIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片
  • UIImageResizingModeTile:平铺模式,通过重复显示UIEdgeInsets指定的矩形区域来填充图片

可以拿到图片直接在xcode右侧设置,会自动计算保护区域

时间: 2024-08-14 21:25:09

ios图片的拉伸的相关文章

ios图片拉伸两种方法

ios图片拉伸两种方法 UIImage *image = [UIImage imageNamed:@"qq"]; 第一种: // 左端盖宽度 NSInteger leftCapWidth = image.size.width * 0.5f; // 顶端盖高度 NSInteger topCapHeight = image.size.height * 0.5f; // 重新赋值 image = [image stretchableImageWithLeftCapWidth:leftCapW

IOS图片拉伸技巧

IOS 图片拉伸技巧 对于有些图标等按钮 在美工设计的按钮下可以通过拉伸效果处理所需效果,最熟悉的莫过于微信聊天的 椭圆背景,也是通过这个这个原理进行背景图片.  如对该图片拉伸,如何操作? 首先找到要拉伸的部分,很明显 两侧椭圆是不变 要拉伸的是中间部分,如何指定中间部位,先看下图 指定这4个宽度后 会形成黑色模块 直白点就是 这块内容就是拉伸后中间那块不断填充的部分 具体代码: 1 UIImage* img=[UIImage imageNamed:@"2.png"];//原图2 U

ios图片拉伸

 button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: // 得到view的尺寸 CGSize viewSize = self.view.bounds.size; // 初始化按钮 UIButton *button = [[UIButton alloc] init]; // 设置尺寸 button.bounds = CGRectMake(0, 0, 150, 50); // 设置位置 button.center = CGPointMake(viewSiz

iOS图片拉伸技巧(转)

本文目录 一.iOS 5.0之前 二.iOS 5.0 三.iOS 6.0 纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑. 比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: 1 - (void)viewDidLoad

iOS 图片拉伸 resizableImageWithCapInsets

UIImage *image =  [[UIImage imageNamed:@"test.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 其中Insets这个参数的格式是(top,left,bottom,right),从上.左.下.右分别在图片上画了一道线,这样就给一个图片加了一个框. 只有在框里面的部分才会被拉伸,而框外面的部分则不会改变. 4个参数是上边界,左边界,下边界,右边界距离,也可以为负

UI基础篇—iOS图片拉伸技巧

比如下面张图片,本来是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // 得到view的尺寸 5 CGSize viewSize = self.view.bounds.size; 6 7 // 初始化按钮 8 UIButton *button = [[UIButton alloc] init]; 9 // 设置尺寸 10

(转)iOS图片拉伸技巧

( 原文博客地址:  http://blog.csdn.net/q199109106q/article/details/8615661) 纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑. 比如下面张图片,本来是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按

博主教你制作类似9patch效果的iOS图片拉伸

下面张图片,本来是设计来做按钮背景的:   button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: C代码   // 得到view的尺寸 CGSize viewSize = self.view.bounds.size; // 初始化按钮 UIButton *button = [[UIButton alloc] init]; // 设置尺寸 button.bounds = CGRectMake(0, 0, 150, 50); // 设置位置 button.c

ios图片拉伸方法(5.0-6.0)

一.iOS 5.0 在iOS 5.0中,UIImage又有一个新方法可以处理图片的拉伸问题 - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets 这个方法只接收一个UIEdgeInsets类型的参数,可以通过设置UIEdgeInsets的left.right.top.bottom来分别指定左端盖宽度.右端盖宽度.顶端盖高度.底端盖高度 1 CGFloat top = 25; // 顶端盖高度 2 CGFloat bott