clipsToBounds 与 masksToBounds 的区别与联系

clipsToBounds
是指视图上的子视图,如果超出父视图的部分就截取掉,
masksToBounds
却是指视图的图层上的子图层,如果超出父图层的部分就截取掉

在调用 clipsToBounds 方法时,就会调用其 layer 的 masksToBounds 方法:

 1 -(BOOL)[UIView(Rendering) clipsToBounds]
 2     +0  3091938a  55              pushl    %ebp
 3     +1  3091938b  89e5            movl     %esp,%ebp
 4     +3  3091938d  e800000000      calll    0x30919392
 5     +8  30919392  59              popl     %ecx
 6     +9  30919393  8b4508          movl     0x08(%ebp),%eax
 7    +12  30919396  8b5004          movl     0x04(%eax),%edx         (CALayer)_layer
 8    +15  30919399  8b8186cb1301    movl     0x0113cb86(%ecx),%eax    masksToBounds
 9    +21  3091939f  89450c          movl     %eax,0x0c(%ebp)
10    +24  309193a2  895508          movl     %edx,0x08(%ebp)
11    +27  309193a5  c9              leave
12    +28  309193a6  e92e211801      jmpl     0x31a9b4d9
时间: 2024-10-11 04:48:20

clipsToBounds 与 masksToBounds 的区别与联系的相关文章

Swift / Objective_C / Xcode实际开发中可能遇到的小功能小技巧总结

一:Swift3.0为视图添加旋转动画,效果如下: 代码实现: //创建动画 let anim = CABasicAnimation(keyPath: "transform.rotation") //设置相关属性 anim.toValue = 2 * M_PI anim.repeatCount = MAXFLOAT anim.duration = 15 //完成之后不移除,testView被释放,动画随着一起删除 anim.isRemovedOnCompletion = false t

iOS之绘制像素到屏幕

译注:这篇文章虽然比较长,但是里面的内容还是很有价值的. 像素是如何绘制到屏幕上面的?把数据输出到屏幕的方法有很多,通过调用很多不同的framework和不同的函数.这里我们讲一下这个过程背后的东西.希望能够帮助大家了解什么时候该使用什么API,特别是当遇到性能问题需要调试的时候.当然,我们这里主要讲iOS,但是事实上,很多东西也是可以应用到OSX上面的. Graphics Stack 绘制屏幕的过程中又很多都是不被人了解的.但是一旦像素被绘制到屏幕上面,那么像素就是有3种颜色组成:红绿蓝.这3

IOS 开发:绘制像素到屏幕

像素是如何绘制到屏幕上面的?把数据输出到屏幕的方法有很多,通过调用很多不同的framework和不同的函数.这里我们讲一下这个过程背后的东西.希望能够帮助大家了解什么时候该使用什么API,特别是当遇到性能问题需要调试的时候.当然,我们这里主要讲iOS,但是事实上,很多东西也是可以应用到OSX上面的. Graphics Stack 绘制屏幕的过程中又很多都是不被人了解的.但是一旦像素被绘制到屏幕上面,那么像素就是有3种颜色组成:红绿蓝.这3个颜色单元通过特定的强弱组合形成一个特定的颜色.对于iPh

iOS CoreAnimate

IOS CoreAnimate 东西比较多,这篇笔记是入门用的,主要讲述的是静态的图形绘画处理问题.(当然动画也只是一小部分)理解相关的概念问题: 参考资料 http://segmentfault.com/a/1190000000390012  (非常好的文章,受益匪浅,关键词:离屏渲染) 工具:Instrument的Core Animation 有一个叫做Color Offscreen-Rendered Yellow的选项.它会将已经被渲染到屏幕外缓冲区的区域标注为黄色(这个选项在模拟器中也可

ios 中tableview和scrollView的区别

scrollView: 1. 介绍scrollView一些属性     1>.要想使用scrollView必须做两件事 1).设置scrollView内容 2).设置contentSize (滚动范围) 2>.其他属性         1). contentOffset(滚动位置)         2). contentInset(额外增加的滚动区域)         3). bounces (设置UIScrollView是否需要弹簧效果) 4). crollEnabled (设置UIScro

Nginx 反代参数:$X-Real-Ip和$X-Forwarded-For的区别

## \$X-Real-Ip和$X-Forwarded-For的区别 标签(空格分隔): nignx 负载均衡 client-ip --- ####1.如果只有一层代理,这两个头的值就是一样的####2.多层代理> * X-Forwarded-For:  header包含这样一行        `*X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3*`> * X-Real-Ip:没有相关标准,上面的例子,如果配置了X-Read-IP,可能会有两种情况`// 最

C#中Convert和parse的区别

Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常. 没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.Que

python判断字符串,str函数isdigit、isdecimal、isnumeric的区别

s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() 所有字符都是大写s.istitle() 所有单词都是首字母大写,像标题s.isspace() 所有字符都是空白字符.\t.\n.\r 判断是整数还是浮点数a=123b=123.123 >>>isinstance(a,int)True>>>isinstance(b,floa

java web 过滤器跟拦截器的区别和使用

1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. 在Webwork的中文文档的解释为--拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可重用的部分的方式.