最近做有关 发送图片的功能。微信显示的图片 使用气泡遮罩出来的。。而且图片尺寸也不止一种。

既然UIImagView 可以拉伸图片,设置遮罩的CALayer 的content 可不可以。

关键CALayer这两个属性:

contentsCenter  跟 图片拉伸原理相同 不过是根据比例

contentsGravity 设置拉伸方法

contentsScale  内容的分变率。== img.scale  应该设置等于 content 图片的分辨率。之前忘了设置这个。坑了好久。

具体可以搜下这三个资料;

上代码:

    mask_pic.contents = (__bridge id)[maskImg CGImage];
mask_pic.frame = CGRectMake(, , _imgView.width,_imgView.height); maskImg = [UIImage imageNamed:@"chatBg_left"];
mask_pic.contentsCenter = CGRectMake(18.0/maskImg.size.width,
24.0/maskImg.size.height,
(maskImg.size.width - (10.0 +18.0))/maskImg.size.width ,
(maskImg.size.height - (24.0 + 10.0))/maskImg.size.height); //拉伸
mask_pic.contentsGravity = kCAGravityResize;
mask_pic.contentsScale = maskImg.scale;
_imgView.backgroundColor = [UIColor blackColor];
_imgView.layer.mask = mask_pic; 

参考:https://github.com/AttackOnDobby/iOS-Core-Animation-Advanced-Techniques/blob/master/2-%E5%AF%84%E5%AE%BF%E5%9B%BE/%E5%AF%84%E5%AE%BF%E5%9B%BE.md

http://www.mgenware.com/blog/?p=489

关于CALayer 中的contents(图片) 拉伸的更多相关文章

  1. IOS中图片拉伸技巧与方法总结(转载)

    以下内容转载自:http://my.oschina.net/u/2340880/blog/403996 IOS中图片拉伸技巧与方法总结 一.了解几个图像拉伸的函数和方法 1.直接拉伸法 简单暴力,却是 ...

  2. 我的Android最佳实践之—— ImageView中图片拉伸显示

    通过设置android:scaleType="fitXY"使得图片拉伸显示.补充:scaleType的属性有matrix(默认).center.centerCrop.centerI ...

  3. iOS动画的要素:CALayer维护数据模型和图片,沟通了CPU和GPU--视图中与图形绘制相关的功能

    1)iOS动画的模型:三层树模型: CALayer维护数据模型和图片,沟通了CPU和GPU:数据模型和图片本尊有CPU生成和维护:图片动画由GPU合成和呈现: https://developer.ap ...

  4. iOS图片拉伸技巧

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

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

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

  6. iOS杂谈-图片拉伸的实现

    如上图是一个按钮的背景图,在Android上,很多图片资源都是类似这样子的,但是由于按钮的高度及宽度与图片的世纪尺寸不同,所以需要采用9patch来实现拉伸处理, 可参考:http://www.cnb ...

  7. iOS 图片拉伸的解释

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

  8. 13、在 uwp应用中,给图片添加高斯模糊滤镜效果(一)

    如果在应用中,如果想要给app 添加模糊滤镜,可能第一想到的是第三方类库,比如 Win2d.lumia Imaging SDK .WriteableBitmapEx,不可否认,这些类库功能强大,效果也 ...

  9. css背景图片拉伸 以及100% 满屏显示

    如何用css背景图片拉伸 以及100% 满屏显示呢?这个问题听起来似乎很简单.但是很遗憾的告诉大家.不是我们想的那么简单. 比如一个容器(body,div,span)中设定一个背景.这个背景的长宽值在 ...

随机推荐

  1. gcc-链接库顺序

    http://qianchenglong.github.io/2015/08/26/gcc-%E9%93%BE%E6%8E%A5%E5%BA%93%E9%A1%BA%E5%BA%8F/ http:// ...

  2. 阿里JAVA开发面试常问问题总结2

    线程与进程 进程是可并发运行的程序在某个数据集合上的一次计算活动.也是操作系统进行资源分配和调度的基本单位. 线程是操作系统进程中能够并发运行的实体,是处理器调度和分派的基本单位. 每一个进程内可包括 ...

  3. java.lang.AbstractStringBuilder.enlargeBuffer

    04-18 10:22:08.585 3653-3653/com.tongyan.lanzhou.rv I/dalvikvm: "main" prio=5 tid=1 RUNNAB ...

  4. Java ConcurrentHashMap (Java代码实战-005)

    package Threads; import com.google.common.collect.Maps; import java.util.concurrent.ConcurrentMap; i ...

  5. Echarts饼图更改颜色、显示数据且换行

    var option = {   title : {       text: '数据来源',       x:'center'   },   tooltip : {       trigger: 'i ...

  6. UAC 实现原理及绕过方法

    目录 0x00 UAC 工作流程 0x01 UAC 实现方法(用户登陆过程) 0x02 UAC 架构 0x03 触发UAC 0x04 UAC 虚拟化 0x05 UAC 逆向分析 1x00 UAC By ...

  7. navicat-mysql-linux工具

    navicat强大的数据库图形化家族,基本都是支持跨平台的!navicat-mysql-linux在Linux是通过Wine工具执行exe文件,默认15天的免费试用时间! 1. 下载 云上下载:htt ...

  8. 动态规划处理diff算法 Myers Diff (正向)

    Eugene W. Myers 在他1986年发表于"Algorithmica"的论文"An O(ND) Difference Algorithm and Its Var ...

  9. sqlserver的convert函数

    定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),dat ...

  10. hibernate注解note

    @Id标识主键属性 1.hibernate5.2 mysql5.7 不需要实现 serializable也可以? 2.主键255的长度我生成了? @GeneratedValue主键生成策略 1.主键设 ...