Chúng là các tên khác nhau vì UIView
và CALayer
khác nhau và có các thuật ngữ khác nhau được liên kết với chúng, nhưng chúng tương đương về mặt chức năng. Nếu bạn tháo rời clipsToBounds
, bạn sẽ thấy nó chỉ gọi số masksToBounds
(không đúng với khung mô phỏng, vì vậy 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
Nguồn
2009-07-24 14:16:17
wow, ấn tượng! làm thế nào để bạn có được chi tiết này? có thể được thực hiện chỉ trong xcode khi xây dựng hoặc là có một công cụ cần thiết để kiểm tra những gì đang xảy ra? – Thanks
Để tháo gỡ nhanh, tôi sử dụng otool, một phần của công cụ dành cho nhà phát triển. Nếu tôi đi qua rất nhiều mã tôi có xu hướng sử dụng otx để tạo ra một danh sách lắp ráp hoàn chỉnh bao gồm làm tất cả các tra cứu chọn cho tôi. –
Làm thế nào bạn có thể nói từ nhìn vào đó, rằng nó thực sự chỉ gọi masksToBounds? – Macmee