我有2个名为“AA”和“AB”的视图(在不久的将来,我还会有更多视图:“AC”,“AD”等)。
现在,在我的viewControllers中,我需要导入所有UIView子类并进行测试,以便知道需要创建哪个子视图并将其添加到视图层次结构中。

我的想法是创建一个名为“A”的视图,该视图将找出需要绘制的子视图并将其类“更改”为 private 视图,可以是“AA”或“AB”。
但是我不知道该怎么做。

当然,我可以测试需要测试的内容,然后将新视图添加为子视图,但是想法是在视图中只有一个视图,而没有一个视图。

谢谢你的回答

最佳答案

您可以使用State Design Pattern的变体来实现一个系统,在该系统中,对象需要在运行时配置其 Activity 。除了在视图中创建视图之外,您还可以创建一个视图,该视图保留一列知道如何在视图中绘制而不会成为UIView对象的事物的列表。

这是一个例子:

@interface ViewDraw
-(void)drawInView; // the UIView caller can pass parameters here
@end
@interface ViewDrawA : ViewDraw
-(void)drawInView;
@end
@interface ViewDrawB : ViewDraw
-(void)drawInView;
@end
@interface ViewDrawC : ViewDraw
-(void)drawInView;
@end

现在,您的ViewA类可以保留NSArray对象的ViewDraw,并使用需要绘制的视图绘制对象对其进行配置,然后调用它们进行绘制。重新配置ViewDraw对象列表将具有ViewA在运行时更改其行为的效果。

10-04 18:16