UIView的clipsToBounds和CALayer的masksToBounds之间的关系如何?
问题描述:
A UIView
有一个CALayer
。这很确定。但两者似乎都提供了同样的东西。UIView的clipsToBounds和CALayer的masksToBounds之间的关系如何?
如果我设置clipsToBounds=YES
,这是否也会设置图层的masksToBounds=YES
?为什么名称不同?有谁知道?
答
它们是不同的名称,因为UIView
和CALayer
是不同的,并有不同的术语与它们相关联,但它们在功能上是等效的。如果你拆开clipsToBounds
你会看到它只是调用masksToBounds
(disassmebly从模拟器的框架,所以X86):
-(BOOL)[UIView(Rendering) clipsToBounds]
+0 3091938a 55 pushl %ebp
+1 3091938b 89e5 movl %esp,%ebp
+3 3091938d e800000000 calll 0x30919392
+8 30919392 59 popl %ecx
+9 30919393 8b4508 movl 0x08(%ebp),%eax
+12 30919396 8b5004 movl 0x04(%eax),%edx (CALayer)_layer
+15 30919399 8b8186cb1301 movl 0x0113cb86(%ecx),%eax masksToBounds
+21 3091939f 89450c movl %eax,0x0c(%ebp)
+24 309193a2 895508 movl %edx,0x08(%ebp)
+27 309193a5 c9 leave
+28 309193a6 e92e211801 jmpl 0x31a9b4d9
哇,令人印象深刻!你如何得到这个细节?这可以在xcode中完成,或者是否有工具来检查发生了什么? – Thanks 2009-07-24 17:15:31