[英]clipsToBounds and masksToBounds in grouped UITableViewCell
[英]How is the relation between UIView's clipsToBounds and CALayer's masksToBounds?
UIView
有一個CALayer
。 這很確定。 但兩者似乎都提供了同樣的東西。
如果我設置clipsToBounds=YES
,這還會設置圖層的masksToBounds=YES
嗎? 為什么不同名字? 有誰知道?
它們是不同的名稱,因為UIView
和CALayer
是不同的,並且具有與它們相關聯的不同術語,但它們在功能上是等同的。 如果您反匯編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
有人問到如果clipToBounds設置為false並且maskToBounds設置為true會發生什么,或者如果有人添加屏幕截圖可能會更好
我偶然發現了同樣的問題,我想在視圖中設置角半徑和陰影。
但這是不可能的,因為只要我將masksToBound設置為YES就會刪除陰影但剪切內容,如果我將其設置為NO則顯示陰影但不剪切內容。
我已經完成了解釋它的項目了解ClipToBound和MasksToBound
我得出結論,CALayer不是一個容器,但它只是一個代表屏幕上帶有可視內容的矩形的類。 在UIView上完成的每個繪圖都在CALayer上進行,這會導致可視內容的繪制
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.