Reputation: 2510
I have an large UIView
. Its variable size. It may be larger than 5000x5000 size
. I draw lines, circles on it using UIBezierPath
. Also I add some view
's on it. Each of these subview
's contains buttons
, textview
, labels
, etc.
I placed this main view on UIScrollView
. UIScrollView
is zoomable
and have to show the contents very sharply (It should not get blurred).
Currently, I draw complete UIView
and added on UIScrollView
. The problem is that, Its taking too much memory
and crashing
because of Memory Pressure Issue.
How should I handle this to achieve high performance?
Upvotes: 5
Views: 1029
Reputation: 4174
Subclass UIView and implement the +layerClass
method in it:
+layerClass
{
return [CATiledLayer class];
}
This causes your view to be backed by CATiledLayer
instead of a single, huge CALayer
(which would consume too much memory at that size).
Then you just implement -(void)drawRect:(CGRect)rect
in your custom view class and do all of your drawing in there. I had to do this recently in my project which uses UIScrollViews to scroll over an area that can be as big as 10000 x 150000.
Upvotes: 3