iOS UIImage 拉伸问题 (适用于UIButton等需要局部拉伸的情况)

图片 有的切图切很大 还占用ipa大小,有时候 切图 只需要 局部或者说 一个压缩的图片的抽象状态

直接上代码

 CGFloat top = 10; // 顶端盖高度
 CGFloat bottom = 10 ; // 底端盖高度
 CGFloat left = 10; // 左端盖宽度
 CGFloat right = 10; // 右端盖宽度
 UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
[optionButton setBackgroundImage:[[UIImage imageNamed:@"hf_segment_control_left_normal"] resizableImageWithCapInsets:insets] forState:UIControlStateNormal];

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

网上的一张图,具象的告诉你 四个宽度参数的存在意义,拉伸的就是中间黑色公共区间

妹子上本人的使用成绩图

      

效果图: 产品经理设计的好美  我好喜欢这种风格

 做出来就是这样的  拉伸后有很协调的感觉

错误示范:

这个图片一直是原image 的大小和比例 ,我抓狂了好一会,质疑为啥不拉伸 原来 要让该图片拉伸 要用[ UIButton setBackgroundImage:]  我用的是 setImage: 可不出大错了么,setBackgroudImage是背景平铺  setImage 就是展示图片.即:图片不会随着按钮的放大而放大,图片始终是原始图片尺寸,而用setBackgroundImage方法设置的图片,图片会随着按钮的变大而拉伸变大。

涨姿势  哈哈  setImage: 就是左边是图片 右边是button.title

比如:  好美

时间: 2024-12-14 04:39:05

iOS UIImage 拉伸问题 (适用于UIButton等需要局部拉伸的情况)的相关文章

iOS UIImage 图片局部拉伸的一些学习要点

之前 做纯色局部拉伸 通过 top  bottom left  right 相交的阴影拉伸 屡试不爽 实施方法: imageView.image = [[UIImage imageNamed: @"icon_helper_palace_day"] resizableImageWithCapInsets:palaceInset]]; 我用这个方法 去拉伸一个 有图案的图的 相对纯色的那一部分时候 会发现 图片被拉伸的同时 会有被图片局部本身填充的现象 好像是连续的同一个1个半的图 这个时

[IOS] 详解图片局部拉伸 + 实现图片局部收缩

(图为微信首页右上角『+』效果) 当初还在开发WP7的时候,从IOS同事那边了解到类似微信以上功能的实现. Item条数不同,总高度也不同,这就需要将背景图片进行局部拉伸到响应的高度,并且保持上方的三角形不变型. 然而回想WP,没找到有API能对图片做此处理,只要图片显示比例与源图比例不一样,就会导致图片拉伸变形. (因此我只能让设计给一个右上角三角形,之后一个纯色长方形,纯色长方形拉伸后不会有问题.想要图片局部改变也行,得自己处理像素) 一. 局部拉伸 现在我们就来看看如何进行图片局部拉伸,相

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

iOS UIImage(转载)

UIImage 是一种比较有难度的显示图片的方式,UIImage 可以从文件或者 ImageData 中来显示图片. 如果可以图形化操作,建议使用 ImageView 这个 Control 来显示图片,毕竟是图形化可视操作. 当从 ImageData 中创建图片的时候,一定要注意图片的大小和尺寸,因为这样是存在内存中,如果图片过大或者图片过多,很容易引起内存泄漏:如果是从 文件 中选择图片,则可以手工选择图片是否缓存在内存中. UIImage 支持的图片类型有:tiff,tif,jpg,jpeg

iOS UIimage的拉伸的三种方法

第一种方法 // - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED; //leftCapWidth:左边不拉伸区域 //topCapHeight:上面不拉伸区域 UIImage *image =[UIImageimageNamed:@"chatdetail_info_other"]; UI

IOS UIImage类方法总结

IOS中对图片的处理 UIImage 相信做项目时肯定会有用到 UIImage 这个类,那我们就来看一下这个类中都有什么内容. 其实这篇文章就是在看文档的时候想记录一下文档中得方法. UIImage 继承于NSObject 下面介绍一下UIImage中的方法 首先是我们最常用的 通过图片的文件名来获取这个图片 + (UIImage *)imageNamed:(NSString *)name //要注意的是这个方法适用于已经导入到工程中的图片 创建新图片 1.+ (UIImage *)imageW

【iOS开发-背景】关于按钮背景图片的拉伸

关于按钮背景图片拉伸与不拉伸的效果 拉伸的效果: 不拉伸的效果 拉伸的效果: 不拉伸的效果 拉伸原理 iOS开发中,有一个方法可以将图片按照指定的形式拉伸,拉伸方式为下图,一般拉伸部分都为0: 实现方式 新建一个UIImage的分类 为UIImage扩充一个方法+(UIImage )resizableImage:(NSString )imageName: 然后再按钮所在的ViewController里面设置按钮的背景 分类 @implementation UIImage (Extension)

iOS 开发学习之 User Interface(3)iOS 坐标系和 UILabel 与 UIButton

注意:控制器的视图默认是透明的,需要给其设置背景. a. 创建UILabel对象,使用带frame参数的初始化方法. 此参数是结构体类型,包含了该UI对象显示在视图上的位置,尺寸. iOS 坐标系: 屏幕左上角为(0,0)起始点, 终点:(各代设备尺寸不同而变化) 3GS及之前:(320,480) — 像素 — (320,480) 4,4s:           (320,  480) — 像素 — (640,960) 5,5s:(320,568) 6,6s:(375,667)(plus:414

iOS UI基础-16.0 UIButton

回归自然,UIButton是我们使用最频烦的一个控件.下面,对该控件的一些常用方法进行一些总结. UIButton *payStateBtn = [UIButton buttonWithType:UIButtonTypeCustom]; payStateBtn.frame = CGRectMake(12, 10, ScreenWidth - 50, 22); // 设置字体居中方向 payStateBtn.contentHorizontalAlignment = UIControlContent