使用 resizableImageWithCapInsets获得想要的图片

swift-resizableImageWithCapInsets(可拉伸图片) 他的作用是用之前的的image创建出一个可拉伸的image,这个image的作用就是当要填充的imageView大于当前image时就会进行拉伸,但是这个可拉伸image是可以设置屏蔽区域的 也就是告诉你哪部分不要用来拉伸。 阅读详情

  很早就用过 resizableImageWithCapInsets 来拉伸图片,然后把得到的图片给一个UIImageView,例如imgView,我们能得到相应的效果,这很完美,大家都喜欢。可是,如果我们把这个UIImageView的image属性传递给别的UIImage时,我们得到的不是UIImageview上展示的效果的image,而是,原来未拉伸之前的 image。那么问题来了,如何获取到拉伸好的图片呢?

  这个问题也困扰了我很久,也骂了苹果无数次SB,今天把这个问题解决了,现在把在项目中适用的代码贴出来,有需要的同学自取哈,原理我相信大家都懂的。

UIImage *mask = [UIImage imageNamed:@"chat_self_bubble"];

    CALayer* maskLayer = [CALayer layer];

    maskLayer.frame = CGRectMake(0, 0, _picView.size.width, _picView.size.height);

    CGSize size = _picView.frame.size;

    if (!model.isSelf) {

        mask = [UIImage imageNamed:@"chat_other_bubble"];

        UIImage *resizeImg = [mask resizableImageWithCapInsets:UIEdgeInsetsMake(16, 10, 2, 2)];

        UIGraphicsBeginImageContext(size);

        // 绘制改变大小的图片

        [resizeImg drawInRect:CGRectMake(0, 0, size.width, size.height)];

        // 从当前context中创建一个改变大小后的图片

        UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

        // 使当前的context出堆栈

        UIGraphicsEndImageContext();

        

        maskLayer.contents = (id)[scaledImage CGImage];

        

    }else{

        UIImage *resizeImg = [mask resizableImageWithCapInsets:UIEdgeInsetsMake(20, 2, 2, 10)];

        UIGraphicsBeginImageContext(size);

        // 绘制改变大小的图片

        [resizeImg drawInRect:CGRectMake(0, 0, size.width, size.height)];

        // 从当前context中创建一个改变大小后的图片

        UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

        // 使当前的context出堆栈

        UIGraphicsEndImageContext();

        

        maskLayer.contents = (id)[scaledImage CGImage];


    }

    [_picView.layer setMask:maskLayer];


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

相关推荐

iOS之彻底弄懂resizableImageWithCapInsets

Demo程序源码 博文链接:https://zhong871004.iteye.com/blog/2287009

ios 图片拉伸resizableImageWithCapInsets:详解

在项目中,我们常常用到一些做背景的图片需要拉伸,今天就来详细讲讲我对图片拉伸函数:”resizableImageWithCapInsets:“的理解 为了演示我先准备好了图片,并做了标注 我们在sb上摆两个按钮,一个用来做测试改变背景图片用,命名为“测试按钮”。另一个用以正常显示背景用(即不拉伸图片),命名为“默认显示”。点击按钮设置按钮背景。可以看到图片均匀被拉伸,铺满整个按钮。很多

u012046379的专栏 2617

react-reactresizablebox可调整大小的React组件

react-resizable-box - 可调整大小的React组件

android 九宫格 拉伸,Swift - 使用resizableImage拉伸图片的指定部分(九宫格拉伸)...

有时我们项目中需要复用一些图片资源,比如很多地方都会使用同一张背景图片,只不过显示的尺寸不同。那么就需要让图片可以根据情况自动拉伸。但如果图片有圆角或一些其他特殊边框的话,直接拉伸会造成变形。比如下面这个带圆角的背景图:如果我们直接拉伸的话就会就会很难看:这个问题可以借助 resizableImage 方法来解决。1,resizableImage 方法介绍该方法可以指定一个矩形区域,这个图片在矩形...

weixin_42627853的博客 813

NIST随机性测试实战:从理论公式到结果解读

本文详细解析了NIST随机性测试的实战应用,从基础测试到高级测试,涵盖频数测试、块频数测试、游程测试等核心方法。通过实际案例和参数设置经验,帮助读者理解如何解读测试结果并排查常见问题,提升随机数生成质量。文章还分享了自动化测试流程和硬件RNG特殊处理技巧,适合密码学和区块链开发者参考。

weixin_29323365的博客 314

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

iOS编程——Swift使用resizableImageWithCapInsets来拉伸图片

在做项目的过程中,经常要用到各种尺寸的图片。有的图片则是长度不同,但是他们的某些区域是相同的。那有没有什么方法可以不用美工来切好多张图,用一张就可以实现呢? 这样既可以减轻美工工作量,又可以减少包得大小。 答案就是用resizableImageWithCapInsets。声明如下: func resizableImageWithCapInsets(capInsets: UIEdgeIn

梁山伯与伏地魔的博客 3499

MAPPO实战:从理论到代码的协作智能体训练指南

本文详细介绍了MAPPO算法在多智能体协作训练中的实战应用,从理论基础到代码实现全面解析。通过对比PPO与MAPPO的差异,深入讲解CTDE框架、网络架构设计、参数调优等关键环节,并提供实际项目中的调参经验和常见问题解决方案,帮助开发者快速掌握这一强化学习前沿技术。

weixin_42561040的博客 265

resizableImageWithCapInsets 使用须知

在iOS5, UIImage添加了可以拉伸图片的函数,即: [UIImage resizableImageWithCapInsets:] 它带参数: UIEdgeInsets,这是一结构体,包含 上/左/下/右四个参数。函数的作用我们看下文档: Creates and returns a new image object with the specified cap

Gorgeous_Xie的专栏 922

逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成

本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。

weixin_29250403的博客 211

Pinocchio 安装教程|机器人学的必备库

安装pinocchio,不要安装pip3 install pinocchio!

darcsdn 1660

resizableImageWithCapInsets认知和对@2x图片的理解

转自:http://my.oschina.net/u/557242/blog/185535 1、resizableImageWithCapInsets 在很多编程语言中都有resizable image这样的概念,比如android中的NinePatch graphic ,css3中的border image,微软的Nine-Grid Rendering,还有就是iOS中U

吹来的寒风 953

YOLO11 Backbone改进:二值化、三值化权重实战(一)

本文介绍了二值化/三值化神经网络的基本概念、优势挑战及应用场景。二值化网络将权重限制为±1,三值化则增加0值,显著减少模型存储需求和计算复杂度。虽然存在精度下降等挑战,但通过技术改进已能在移动设备、自动驾驶等领域应用。文章分析了YOLO11中适合量化的层,并详细阐述了二值化权重原理及Straight-Through Estimator等关键技术。二值化/三值化神经网络为资源受限设备提供了高效的深度学习解决方案。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 298

resizableImageWithCapInsets设置图片拉伸(自适应大小)

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

COOL_BEAR_XX的专栏 1434

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

977

【示波器专题】示波器探头的原理深入——有源探头之单端有源探头

由于接地环路的苛刻要求,更高带宽的单端有源探头就算设计了也不实用。因此单端有源探头的带宽一般在6GHz以内,更高带宽的信号测量也只能使用差分有源探头(市面上有些型号的差分探头可同时兼顾单端测试)。......

一点硬件 2145

[UIImage resizableImageWithCapInsets:]使用注意

[UIImage resizableImageWithCapInsets:] 它带参数: UIEdgeInsets,这是一结构体,包含 上/左/下/右四个参数。函数的作用我们看下文档: Creates and returns a new image object with the specified cap insets. Discussion You use this met

jackshiny的专栏 523

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

resizableImageWithCapInsets对图片拉伸的使用见解

这里对- (UIImage )resizableImageWithCapInsets:(UIEdgeInsets)capInsets方法及- (UIImage )resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode方法对于图片的拉伸与压缩效果做了个研究。话不

逸轻紫的博客 1099

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

iOS图片拉伸技巧—— resizableImageWithCapInsets

比如下面张图片,本来是设计来做按钮背景的:

xdRao的专栏 982

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

resizableImageWithCapInsets方法简介

对图片进行局部拉伸 方法: 在 iOS 6 的时候,系统为我们提供了这样一个方法: //该方法返回的是UIImage类型的对象,即返回经该方法拉伸后的图像 - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode 第一个...

depaoweng2915的博客 459

使用 resizableImageWithCapInsets 方法实现可伸缩图片

之前介绍过通过 stretchableImageWithLeftCapWidth:topCapHeight: 方法来实现可伸缩图片; 可看这篇随笔:使用 stretchableImageWithLeftCapWidth 方法实现可伸缩图片   iOS5 中提供了一个新的 UIImage 对象实例方法:resizableImageWithCapInsets:,可以将图片转换为以某一偏移值为偏移...

weixin_34406061的博客 183

[UIImage resizableImageWithCapInsets:] 函数说明

关于这个函数,在apple的文档说明中是这样子的 Declare  - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets Description Creates and returns a new image object with the specified cap insets. You use this

ifwang之路 1394
上一篇: iOS release版本中去掉NSLog输出
下一篇: 开始学习使用ReactiveCocoa框架
lvmaker
博客等级 码龄17年 118粉丝 56原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值