这是一个面向对象的编程问题:
所以我正在尝试构建一个显示散点图的 UIView 类。在我当前的实现中,我创建了一个数据源协议,允许 chartView 询问绘制其数据所需的所有信息。
就目前而言,当有人初始化chartView并为其提供数据源时,chartview会创建/管理几个子视图:显示所有数据点的“dotsView”,添加dotview的滚动视图(因此它是可滚动的) ,以及位于背景中并显示其他图表数据(如网格线)的“skeletonView”。
这个系统起初工作得很好,但是,我决定要对点的变化进行动画处理,所以我开始考虑使用 collectionView 代替放置在滚动视图中的“dotsView”,因为它将处理动画为了我。然而,由于collectionview 需要委托、数据源、布局对象等,突然之间,我的chartView 看起来越来越像控制器而不是视图。
现在这是我的问题:允许 UIView 协调/配置其他 UIView 是否是错误的方法,即使这些 UIView 是整体的基本要求?一方面,我希望保留我的 chartView 的公共接口的简单性(初始化视图,给它一个数据源,然后你就完成了)。另一方面,这个 chartView 真的不再是一个视图,它更像一个控制器。但我不希望图表的消费者像控制器一样思考/对待它,我希望他们将其用作视图。
有什么想法吗?我很想听听其他人的见解。
谢谢!