原文地址:https://www.jianshu.com/p/9352091f3a94

1.想要实现一个弹框,是对某项事务的说明,效果如下

2.试过使用slicing

  • 不论你怎么调,中间的那个小尖尖都会变形或者是没有拉伸的效果,或者拉成很奇怪的东西

3.所以用代码来实现了

  • 思路 既然要保证中间不变拉伸两边,那我们先拉伸左边,然后得到的图片拿来再拉伸右边,保证两次拉伸的距离相同可以了

  • 思路图:有点丑,见谅

需要拉伸的距离就是 X = (Z - Y) / 2

4.思路有了,上代码

- (UIImage *)dc_stretchLeftAndRightWithContainerSize:(CGSize)size
{CGSize imageSize = self.size;CGSize bgSize = size;//1.第一次拉伸右边 保护左边UIImage *image = [self stretchableImageWithLeftCapWidth:imageSize.width *0.8 topCapHeight:imageSize.height * 0.5];//第一次拉伸的距离之后图片总宽度CGFloat tempWidth = (bgSize.width)/2 + imageSize.width/2;UIGraphicsBeginImageContextWithOptions(CGSizeMake(tempWidth, imageSize.height), NO, [UIScreen mainScreen].scale);[image drawInRect:CGRectMake(0, 0, tempWidth, bgSize.height)];//拿到拉伸过的图片UIImage *firstStrechImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();//2.第二次拉伸左边 保护右边UIImage *secondStrechImage = [firstStrechImage stretchableImageWithLeftCapWidth:firstStrechImage.size.width *0.1 topCapHeight:firstStrechImage.size.height*0.5];return secondStrechImage;
}

5.PS:这被我弄成了一个图片的分类,方便使用

我是看了这篇文章有的思路,需要的同学可以看看,感谢他

http://www.jianshu.com/p/bb3300cf15c4

图片拉伸:拉伸两边,保持中间不动相关推荐

  1. android自适应拉伸图片,Android 启动页-解决图片被拉伸和压缩问题,适配虚拟导航栏...

    Android 启动页设置非常简单 //styles.xml 设置主题 @drawable/bg_splash true //activity使用主题,这时点击app图标,就会显示@drawable/ ...

  2. ios 按钮图片拉伸_#UIButton#背景图片的拉伸

    如果不采用相应技术对button的背景图片进行拉伸,则显示的效果就会失真,效果: Snip20160823_7.png iOS中有三种方法对图片进行拉伸 // 方法一: - (void)viewDid ...

  3. android背景图拉伸,解决android:background背景图片被拉伸问题

    解决android:background背景图片被拉伸问题 ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而s ...

  4. wallpaper设置壁纸图片被拉伸

    时间:2021/04/07 之前公司不允许csdn,笔记写在其它地方.最近整理过来 问题描述: 原生壁纸设置壁纸之后,图片被拉伸.导出/data/system/users/0/wallpaper_in ...

  5. ios 按钮图片拉伸_iOS中实现图片自适应拉伸效果的方法

    前言 在Android中实现图片的拉伸特别特别简单,甚至不用写一行代码,直接使用.9图片进行划线即可.但是iOS就没这么简单了,比如对于下面的一张图片(原始尺寸:200*103): 我们不做任何处理, ...

  6. table vue 背景图片_table中background背景图片自动拉伸

    解决android:background背景图片被拉伸问题 ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而s ...

  7. html js 修改img 图片不拉伸,防止图片拉伸的自适应处理

    在web开发中,作为前端经常会遇到处理图片拉伸问题的情况. 例如banner.图文列表.头像等所有和用户或客户自主操作图片上传的地方, 而一旦牵扯图片,就会涉及到图片拉伸的问题, 当然,在图片上传时做 ...

  8. html js 修改img 图片不拉伸,Javascript防止图片拉伸的自适应处理方法

    前言 相信大家在日常的web开发中,作为前端经常会遇到处理图片拉伸问题的情况. 例如banner.图文列表.头像等所有和用户或客户自主操作图片上传的地方,而一旦牵扯图片,就会涉及到图片拉伸的问题,当然 ...

  9. css flex 图片不拉伸_flex布局下img元素被拉伸变形的有效解决办法

    在flex布局下图片被拉伸: 正常的效果: 一.给img元素设置flex-shrink: 0 给 img 设置 flex-shrink: 0; 这种方式不会破坏现有的目录结构,只需要给被拉伸的img添 ...

  10. QQ中对话框图片的拉伸问题

    一.主旨部分(关于QQ中对话框的拉伸问题) 1> 示例图片(此图片是不合格的) 2> 最终拉伸的图片样式(合格) 二.方法(三种) 1> 方法一:增加一个分类,在分类中实现对图片的修 ...

最新文章

  1. python webshell_python脚本实现查找webshell的方法
  2. 集合嵌套存储和遍历元素的示例
  3. 初识redis(redis基础命令)
  4. STL链式存储结构——————list链表
  5. MySQL 错误 #1055
  6. Jenkins学习七:Jenkins的授权和访问控制
  7. JUC锁-CyclicBarrier(七)
  8. BurpSuite插件 -- Struts2-RCE
  9. stm32 输入捕获 测量脉宽
  10. CVPR 2019 | Adobe提出新型超分辨率方法:用神经网络迁移参照图像纹理
  11. c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换
  12. Linux两种方式rd.break和init重置root管理员密码
  13. 数字城市新型基础设施——打造以“运营与安全并重”为特色的新型数字空间
  14. 自动写诗APP项目、基于python+Android实现(技术:LSTM+Fasttext分类+word2vec+Flask+mysql)第四节
  15. 密码学——培根密码和栅栏密码
  16. 高远球技术(羽毛球)
  17. Excel文件显示“文件已损坏,无法打开”情况的解决办法
  18. Win10家庭中文版开机后弹窗无法登录到你的账户点注销没用(解决过程记录)
  19. 把int转换为char把int转换为char
  20. 线性代数: 什么是矩阵,以及矩阵的线性代数意义

热门文章

  1. 2018-2019-2 20189206 《密码与安全新技术专题》 第六次作业
  2. High Performance Visual Tracking with Siamese Region Proposal Network全文翻译
  3. IOS 七种手势详解(动图+Demo下载)
  4. mac怎么压缩pdf文件大小?
  5. 全面概述将人工智能市场纳入其广泛的数据库
  6. flink学习(五)DataStream API
  7. SaaS到底是什么,如何做?——这份我亲手整理的笔记您收好了!
  8. 【MM模块】Subsequent Debits/Credits 事后借记/事后贷记
  9. 云直播丁云鹏:最可怕的,是你低估生活的残酷
  10. Wifidog扫盲篇