1

CGColorsを使用してリストを作成する効率的な方法を検討していMonoTouchます。

これは私がこれまでの方法で持っているものです:

List<CGColor> colourList = new List<CGColor>();
colourList.Add(UIColor.Blue.CGColor);
colourList.Add(UIColor.Brown.CGColor);
colourList.Add(UIColor.Cyan.CGColor);

リストからこれらの色の1つをランダムに選択するのは簡単ですが、毎回CGColor使用することなく、このリストにさまざまなオプションをすべて追加する効率的な方法を探しています。colourList.Add()

可能な各オプション(青、オレンジ、緑、紫など)をループで実行して、これらをリストに追加するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

それはあなたが効率的に何を意味するかに依存します。これを高速にしたい場合は、引き続き使用Addして独自のリストを作成してください。

C#3機能を使用してソースコードをドロップできます。

List<CGColor> colourList = new List<CGColor> () {
    UIColor.Blue.CGColor,
    UIColor.Brown.CGColor,
    UIColor.Cyan.CGColor, ...
};

それは見栄えが良く(IMHO)、ILにコンパイルされると同じになるため、実行も同じくらい高速になります。

(を返す)System.Reflectionのすべての静的プロパティを検索し、それらをリストに追加するために使用することもできます。これには、iOSの将来のバージョンで追加された新しい色が、ソースコードを変更せずに追加されるという利点があります。ただし、(リストを作成するための)実行は少し遅くなります。また、マネージリンカーは、有効にすると一部の色を削除する場合があります(アプリケーションで必要とされるように表示されないため)。UIColorCGColor

最後に、ランダムな色が必要な場合は、RGBA値のみを保持し、CGColorそれらに基づいてを再作成できます。Takeは少量のメモリを使用し、RGBA値の事前定義された配列を使用できるようにします。

于 2012-12-02T16:09:19.843 に答える