绘图视图、子视图还是全部在一起?
Drawing view, subviews or all together?
我对 iOS 绘图还很陌生,我很难理解不同的策略(只有一个视图绘制所有内容,一个视图使用其他子视图,...)。
我想画这样的图:
我对如何绘制这个感到困惑:
第一个解决方案
1) 在 UnitBarView 文件中绘制我所说的 "unit bar"(例如下面的第一个红色条)。
2) 创建第二个视图 "FourUnitBarsView" 这将增加 4 个 UnitBarView。
3) 使用 "FourUnitBarsView"
在新视图中绘制图形
第二解
1) 绘制一个由四个柱组成的单元 "FourUnitBarsView" 传递一个颜色数组和一个值数组。
3) 根据需要使用尽可能多的子视图 ("FourUnitBarsView") 在新视图中绘制图形
第三个解
只使用一个视图并在其中绘制所有内容
除非你的一个大视图能够进行局部重绘,否则单独的子视图应该更有效,因为系统可以优化它的绘制,只绘制需要重绘的部分。但是,我不知道拥有大量视图是否会导致其他方面的性能开销,例如命中测试等。
总而言之,我建议您实施最快的构建方式,如果发现性能阻碍了应用程序,您可以尝试其他方法,否则听起来像是过早的优化。
我对 iOS 绘图还很陌生,我很难理解不同的策略(只有一个视图绘制所有内容,一个视图使用其他子视图,...)。
我想画这样的图:
我对如何绘制这个感到困惑:
第一个解决方案
1) 在 UnitBarView 文件中绘制我所说的 "unit bar"(例如下面的第一个红色条)。
2) 创建第二个视图 "FourUnitBarsView" 这将增加 4 个 UnitBarView。
3) 使用 "FourUnitBarsView"
在新视图中绘制图形第二解
1) 绘制一个由四个柱组成的单元 "FourUnitBarsView" 传递一个颜色数组和一个值数组。
3) 根据需要使用尽可能多的子视图 ("FourUnitBarsView") 在新视图中绘制图形
第三个解
只使用一个视图并在其中绘制所有内容
除非你的一个大视图能够进行局部重绘,否则单独的子视图应该更有效,因为系统可以优化它的绘制,只绘制需要重绘的部分。但是,我不知道拥有大量视图是否会导致其他方面的性能开销,例如命中测试等。
总而言之,我建议您实施最快的构建方式,如果发现性能阻碍了应用程序,您可以尝试其他方法,否则听起来像是过早的优化。