1

「AA」と「AB」という名前の 2 つのビューがあります (近い将来、「AC」、「AD」などのビューが増える予定です)。現在、viewControllers で、すべての UIView サブクラスをインポートし、何かをテストして、どのサブビューを作成してビュー階層に追加する必要があるかを知る必要があります。

私のアイデアは、「A」という名前のビューを作成して、描画する必要があるサブビューを特定し、そのクラスを「AA」または「AB」のプライベート クラスに「変更」することでした。しかし、私はそれを行う方法がわかりません。

もちろん、テストする必要があるものをテストしてから、新しいビューをサブビューとして追加することもできますが、ビュー内のビューではなく、ビューを 1 つだけ持つという考え方でした。

回答ありがとうございます

4

1 に答える 1

2

State Design パターンのバリエーションを使用して、オブジェクトが実行時にアクティビティを構成する必要があるシステムを実装できます。ビュー内にビューを作成するのではなく、それ自体が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クラスはNSArrayofオブジェクトを保持ViewDrawし、描画する必要があるビュー描画オブジェクトで構成し、それらを呼び出して描画を行うことができます。ViewDrawオブジェクトのリストを再構成するとViewA、実行時の動作が変更されます。

于 2013-04-15T16:02:21.653 に答える