正しい軌道に乗っているようですね。私はあなたのすべての期待に一度に対処しようとします:
画面上のビューは、カスタム UIView サブクラスまたは UIImageViews である可能性があります。将来追加したい他の機能について考えたいと思うかもしれません。UIView アプローチは最も柔軟性が高く、車の画像を手動で描画して回転を処理することもできます。これを行うには、UIView のサブクラスを作成し、画像プロパティと回転プロパティを指定してから、"drawRect:(CGRect)rect" 関数をオーバーライドして画像を描画します。
車の配列をビュー コントローラーに配置するのは素晴らしいことです。
通常、初期レイアウトを Interface Builder NIB ファイルに保存するのが最善の方法です。これにより、将来的にインターフェイスを簡単に変更できるようになり、画面上に物を作成して配置するために必要な多くのボイラープレート コードが省略されます。
とはいえ、多数のビューを単一の配列アウトレットにバインドすることはできません。この特定のケースでは、View Controller の「viewDidLoad」関数を実装して、複数の車を作成します。あなたは正しい軌道に乗っていました!
一般的なオプションではないため、Interface Builder でローテーションを設定することはできません。CAAnimation 変換を使用して回転を実装し、回転プロパティを設定してから、ある角度で画像を手動で描画できます。
それが役立つことを願っています!
編集: ある角度で画像を描画するためのサンプル コードを次に示します。Quartz (Core Graphics とも呼ばれます) を使用しているため、Apple のドキュメントでさらに多くの情報を入手できます。
- (void)drawRect:(CGRect)r
{
// get the drawing context that is currently bound
CGContextRef c = UIGraphicsGetCurrentContext();
// save it's "graphics state" so that our rotation of the coordinate space is undoable.
CGContextSaveGState(c);
// rotate the coordinate space by 90º (in radians). In Quartz, images are
// always drawn "up," but using CTM transforms, you can change what "up" is!
// Can also use TranslateCTM and ScaleCTM to manipulate other properties of coordinate space.
CGContextRotateCTM(c, M_PI / 2);
// draw an image to fill our entire view. Note that if you want the image to be semi-transparent,
// the view must have opaque = NO and backgroundColor = [UIColor clearColor]!
CGContextDrawImage(c, self.bounds, [[UIImage imageNamed:@"image_file.png"] CGImage]);
// restore the graphics state. We could just rotate by -M_PI/2, but for complex transformations
// this is very handy.
CGContextRestoreGState(c);
}