UIView的ClipToBounds和CALayer的mask到Bounds之间的关系如何?
一个UIView
有一个CALayer
。 这很确定。 但是两者似乎都提供了同样的东西。
如果我设置clipsToBounds=YES
,这也会设置图层的masksToBounds=YES
? 为什么不同的名字 有谁知道?
它们是不同的名称,因为UIView
和CALayer
是不同的,有不同的术语,但它们在function上是等价的。 如果你反汇编clipsToBounds
你会看到它只是调用masksToBounds
(从模拟器框架,如此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