我有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
在运行时更改其行为的效果。