2009-07-24 13 views

Respuesta

96

Son nombres diferentes porque UIView y CALayer son diferentes y tienen una terminología diferente asociada, pero son funcionalmente equivalentes. Si se desmonta clipsToBounds verá que sólo llama masksToBounds (disassmebly del marco simulador, por lo 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 
+0

wow, impresionante! ¿cómo llegas a estos detalles? ¿podría hacerse eso solo en xcode al construir o hay alguna herramienta necesaria para verificar lo que está pasando? – Thanks

+3

Para un desmontaje rápido, utilizo otool, que es parte de las herramientas de desarrollo. Si estoy leyendo un montón de código, tiendo a usar otx para generar una lista de ensamblaje completa que incluye todas las búsquedas de selector para mí. –

+0

¿Cómo puedes saber al ver eso, que realmente solo llama a masksToBounds? – Macmee

Cuestiones relacionadas