簡體   English   中英

我如何強制“容器” UIView沒有CALayer?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM