iOS图片拉伸的方法

发布时间 - 2026-01-10 22:34:09    点击率:

假如下面的一张图片,是用来做按钮的背景图片的,原始尺寸是76 × 40

我们通过代码将这张图片设置为按钮的背景图片,假如我们将创建好的按钮的宽高设置为:(W=200, H=50)代码如下:

 // 初始化按钮
 UIButton *button = [[UIButton alloc] init];
 // 设置尺寸
 button.frame = CGRectMake(100, 200, 200, 50);
 
 // 加载图片
 UIImage *image = [UIImage imageNamed:@"ppm_new_shuliang.png"];
 
 // 设置背景图片
 [button setBackgroundImage:image forState:UIControlStateNormal];
 
 // 添加按钮 
 [self.view addSubview:button];

 结果如下:图片被拉伸了。

原因分析:是将原是尺寸为76 × 40 的图片拉伸成了W=200, H=50;

解决方案:

1.找美工重做一张较大的图片,这样的话就会出现软件包将来会变大,占用空间更大;如果我们要经常修改按钮的frame,美工设计比较繁琐;
2.苹果为我们提供了关于图片拉伸的API,我们可以直接利用代码实现;

修改后:

 // 初始化按钮
 UIButton *button = [[UIButton alloc] init];
 // 设置尺寸
 button.frame = CGRectMake(100, 200, 200, 50);
 
 CGFloat top = 0; // 顶端盖高度
 CGFloat bottom = 0 ; // 底端盖高度
 CGFloat left = 22; // 左端盖宽度
 CGFloat right = 22; // 右端盖宽度
 UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
 
 
 // 加载图片
 UIImage *image = [UIImage imageNamed:@"ppm_new_shuliang.png"];
 
 image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
 
 // 设置背景图片
 [button setBackgroundImage:image forState:UIControlStateNormal];
 
 // 添加按钮 
 [self.view addSubview:button];


还有一种设置方法:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iOS  # 图片拉伸  # iOS tableView实现头部拉伸并改变导航条渐变色  # iOS 解决按钮背景图片拉伸问题(推荐)  # iOS开发之自定义图片拉伸功能  # iOS中实现图片自适应拉伸效果的方法  # iOS UIImageView图片自动拉伸功能  # iOS图片拉伸的多种方式  # iOS图片拉伸的4种方法  # iOS图片拉伸技巧(iOS5.0、iOS6.0)  # iOS图片拉伸技巧小结  # iOS实现头部拉伸效果  # 设置为  # 左端  # 加载  # 就会  # 成了  # 更大  # 我们可以  # 这张  # 软件包  # 原是  # 变大  # 伸了  # 大家多多  # 这样的话  # 尺寸为  # 重做  # 将来  # 底端  # 右端  # 是用来 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  音乐网站服务器如何优化API响应速度?  实例解析Array和String方法  JS弹性运动实现方法分析  昵图网官方站入口 昵图网素材图库官网入口  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Mybatis 中的insertOrUpdate操作  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  如何在万网开始建站?分步指南解析  如何在局域网内绑定自建网站域名?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Thinkphp 中 distinct 的用法解析  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel如何使用Collections进行数据处理?(实用方法示例)  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何在IIS服务器上快速部署高效网站?  jquery插件bootstrapValidator表单验证详解  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  nodejs redis 发布订阅机制封装实现方法及实例代码  长沙做网站要多少钱,长沙国安网络怎么样?  如何快速选择适合个人网站的云服务器配置?  如何快速上传自定义模板至建站之星?  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  网站优化排名时,需要考虑哪些问题呢?  javascript基于原型链的继承及call和apply函数用法分析  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何构建满足综合性能需求的优质建站方案?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何用已有域名快速搭建网站?  如何在阿里云服务器自主搭建网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  实现点击下箭头变上箭头来回切换的两种方法【推荐】  jQuery validate插件功能与用法详解  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Linux系统命令中screen命令详解