[英]How I force a “container” UIView to have no CALayer?
我試圖在我的可視化中節省內存消耗。 我有一個帶有包含一些子視圖的containerView的scrollView。 我想消除scrollView和containerView的CALayer。 因此,僅子視圖會在重繪等過程中占用內存。
我該怎么做呢?
謝謝,道格
iPhone上的所有UIViews和UIView子類均由CALayers支持。 您實際上可以做很多事情來避免這種情況,因為這是UIKit所做的假設。 (不過,在Mac的Cocoa中,您可以指定哪些視圖具有CALayers!)
盡管您可能可以破解一些東西並銷毀某些視圖的CALayers,但我不建議這樣做。 我已經編寫了一些非常復雜的繪畫應用程序,而CALayers消耗大量內存從來沒有問題。 請記住,在應用收到內存警告之前,您可以安全地使用大約25MB的內存。 如果您看到應用程序通過大量使用的內存而流失,而您只是在繪圖,那么可能還有另一個問題。
希望能有所幫助,
本
我的容器層只有1x1點大,因此使用的內存很少。 (我還沒有嘗試過0x0,也不知道那是否可行。)
使用clipsToBounds
== NO
(默認),即使所有子視圖“伸出”其父視圖,它們仍然可見。
如果子視圖需要接收事件,則需要覆蓋-pointInside:withEvent:
以對容器視圖的“真實”范圍內的點返回YES
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.