在UIScrollView上显示大型UIView的最好方法是什么?
我有一个大的UIView
。 它的大小可变 它可能大于5000×5000 size
。 我使用UIBezierPath
绘制线条,圆圈。 我也加了一些view
。 每个subview
包含buttons
, textview
subview
, labels
等
我把这个主视图放在UIScrollView
。 UIScrollView
是可zoomable
,必须非常清晰地显示内容(它不应该变得模糊)。
目前,我绘制完整的UIView
并添加到UIScrollView
。 问题在于,由于Memory Pressure Issue.
, Memory Pressure Issue.
过多, crashing
Memory Pressure Issue.
我应该如何处理以达到高性能?
子类UIView并实现其中的+layerClass
方法:
+layerClass { return [CATiledLayer class]; }
这会导致您的视图被CATiledLayer
支持,而不是一个巨大的CALayer
(这会消耗太多的内存)。
然后你只需在你的自定义视图类中实现-(void)drawRect:(CGRect)rect
,并在那里完成所有的绘图。 我最近在我的项目中使用UIScrollViews来滚动一个可以大到10000 x 150000的区域。
我认为你可以使用CATiledLayer
来平铺,以降低内存压力,但这一切都取决于你正在加载什么,什么时候以及其他方面。 平铺是一个复杂的话题,你可以在这里find更多的信息
- 架构的未定义符号x86_64 iOS swift
- FBSDKLoginManager logInWithPublishPermissions总是返回isCancelled = YES
- Facebook Graph API object_id有时会丢失
- 如何validationios中的多个文本字段
- 是否可以从RoboVM访问OpenGL ES而不使用LibGDX?
- 对于Soap NSURLConnection,请确保您的应用程序支持IPv6networking,因为需要IPv6兼容性
- PerformSegueWithIdentifier不起作用
- 没有设备准备和没有console.log Xcode使用cordova1.5
- 我的iOS应用程序冻结但没有出现错误