UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种:

第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下:

  1. UIImage *image = [UIImage imageNamed:@"image.png"];
  2. image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2) topCapHeight:floorf(image.size.height/2)];

设置了左端帽之后,rightCapWidth = image.size.width - (image.leftCapWidth + 1); 也就是说图片中间的一像素用来拉伸。垂直方向同上。设置之后无论把image放到什么控件中都可以自动拉伸了。

  1. UIImage *buttonImage = [UIImage imageNamed:@"contact.png"];
  2. buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];
  3. UIImage *buttonImageselected = [UIImage imageNamed:@"contactselected.png"];
  4. buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];
  5. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  6. button.frame = CGRectMake(0, 0, 240, 44);
  7. [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
  8. [button setBackgroundImage:buttonImageselected forState:UIControlStateHighlighted];
  9. button.center = CGPointMake(160, 240);
  10. [button setTitle:@"button" forState:UIControlStateNormal];
  11. [button setTitle:@"buttonClick" forState:UIControlStateHighlighted];
  12. [self.view addSubview:button];

第二种方法是在UIButton中加入一个UIImageView,拉伸imageView,然后将button的背景设为clearColor等等。把imageView放入button中,并且sendToBack,得到效果。代码如下:
 //刚才imageView拉伸的代码

  1. UIImageView *strechTest = [[UIImageyiView alloc] initWithImage:[UIImage imageNamed:@"contact.png"]];
  2. [strechTest setContentStretch:CGRectMake(0.5f, 0.5f, 0.f, 0.f)];
  3. CGRect frame = strechTest.frame;
  4. frame.size.width += 100;
  5. strechTest.frame = frame;
  1. //把imageView放入button中,并设置为back
  2. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  3. button1.frame = frame;
  4. button1.center = CGPointMake(160, 140);
  5. [button1 addSubview:strechTest];
  6. [button1 sendSubviewToBack:strechTest];
  7. [button1 setBackgroundColor:[UIColor clearColor]];
  8. [button1 setTitle:@"button" forState:UIControlStateNormal];
  9. [button1 setTitle:@"buttonClick" forState:UIControlStateHighlighted];
  10. [self.view addSubview:button];

效果:

IOS图像拉伸解决方案的更多相关文章

  1. 【转】IOS图像拉伸解决方案

    原文网址:http://www.cnblogs.com/ios8/p/ios-pic-lashen.html UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种: 第一种方法很简单 ...

  2. 支持WEB、Android、IOS的地图解决方案

    转自原文 支持WEB.Android.IOS的地图解决方案 工具链 GIS工具集 OpenGeo Suite 包含PostGIS, GeoServer, GeoWebCache, OpenLayers ...

  3. iOS中拉伸图片的几种方式

    假如下面的一张图片,是用来做按钮的背景图片的,原始尺寸是(128 * 112) 按钮背景图片.png 我们通过代码将这张图片设置为按钮的背景图片,假如我们将创建好的按钮的宽高设置为:(W=200, H ...

  4. FPGA图像加速解决方案来了

    近日,百度云与联捷计算科技(CTAccel)共同推出基于FPGA的图像加速解决方案(CIP,CTAccel Image Processor),实现对JPEG转码JPEG.JPEG转码WebP(M6)等 ...

  5. 迅雷Bolt图像拉伸不清晰的解决办法

    迅雷Bolt库中的图像拉伸的效果锯齿比较严重,常见的导致锯齿的情况: 1.在使用ImageObject时,drawmode为1拉伸模式下: 2.使用Bitmap类的Stretch函数拉伸图像: 虽然I ...

  6. ios archives 出现的是other items而不是iOS Apps的解决方案

    ios archives 出现的是other items而不是iOS Apps的解决方案 项目打包时出现的是不是出现在iOS Apps栏目下面,而是Other Items而且右边对应的Upload t ...

  7. iOS图片拉伸技巧

    纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设 ...

  8. (转)iOS图片拉伸技巧

    ( 原文博客地址:  http://blog.csdn.net/q199109106q/article/details/8615661) 纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要 ...

  9. iOS 图片拉伸的解释

    以前对于ios的图片拉伸参数一直不太理解,终于看到一篇好文章,转载一下,原文地址:http://blog.csdn.net/q199109106q/article/details/8615661 主要 ...

随机推荐

  1. Vi Command 【转载】

    原文: http://www.cnblogs.com/Jesenwuzj/archive/2010/03/18/1688776.html Vi中文手册 1.vi的基本概念 基本上vi可以分为三种状态, ...

  2. weborm 简单控件

    Label - 显示文字,编译后是spanLiteral - 显示文字,编译后没有形成元素 只是文字 一般用来输出 js代码内容 TextBox - 文本框 TextMode -普通文本框 singl ...

  3. Java文件读取

    package a.ab; import java.io.*; public class FileWrite { public static void main(String[] args) { Fi ...

  4. step by step 之餐饮管理系统三

    1.说明 表名的长度最长为18个字符 茶色的字段为主键或联合主键 浅黄色的字段为索引 浅灰底色的字段为临时表中比正式表多出的字段 数据库系统:Sqlserver2008 脚本工具:使用CodeGene ...

  5. Cocos与Cocos2d-x协作教程——多分辨率适配

    http://www.cocoachina.com/bbs/read.php?tid-288123.html Cocos v2.1开始新增了一种新的多分辨率适配方案:流式布局. 这种布局相比Cocos ...

  6. 第42讲:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用

    今天来了解下scala的泛型 先让我们看下这段代码 class Triple[F,S,T](val first:F,val second: S,val third: T) val triple = n ...

  7. 《Automatic Face Classification of Cushing’s Syndrome in Women – A Novel Screening Approach》学习笔记

    <针对女性库欣综合征患者的自动面部分类-一种新颖的筛查方法> Abstract 目的:库兴氏综合征对身体造成相当大的伤害如果不及时治疗,还经常是诊断的时间太长.在这项研究中,我们旨在测试面 ...

  8. Could not create the view: An unexpected exception was thrown 异常处理

    MyEclipse 打开后有时候莫名的在server窗口里抛出"Could not create the view: An unexpected exception was thrown&q ...

  9. sqlhelper sqlparameter 实现增删改查

    这是sqlHelper.cs类,类内里封装了方法 using System; using System.Collections.Generic; using System.Linq; using Sy ...

  10. 【Leetcode】【Hard】Merge Intervals

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...