使用或扩展 class 哪个更好? (swift)

Is it better to use or to extend a class? (swift)

我想要一个包含颜色的面板作为 UIVisualEffectView。所以,模糊背景和按钮。像这样:

我应该创建扩展 UIVisualEffectView(或 UIView?)的 ColorPanelView class 还是使用 UIVisualEffectView 的 ColorPanel class?

有什么区别,哪种方式更好?

如果我没理解错的话,你是在问你是否应该制作一个子类化 UIVisualEffectView 的自定义视图,或者你是否应该只将 UIVisualEffectView 添加到现有视图。

如果我的理解是正确的,那么答案取决于您是否需要在代码中的其他任何地方重用此视图。通过制作一个包含您的面板的 UIVisualEffectView 的自定义子类,您可以轻松地重用它而无需重复太多代码。

如果您知道您只需要它一次,您可以将 UIVisualEffectView 添加到现有视图,然后按照您想要的方式对其进行自定义。

两者都行。

在这种情况下,我将只扩展 UIView 而不是 UIVisualEffectView。原因是如果设计发生变化并且您希望颜色面板位于纯色背景而不是模糊背景上,您可以在不更改要扩展的 class 的情况下进行更改。