听起来你在正确的轨道上。我将尝试一次满足您的所有期望:
屏幕上的视图可以是自定义 UIView 子类或 UIImageViews。您可能需要考虑将来要添加的其他功能。UIView 方法提供了最大的灵活性,并且还允许您通过手动绘制汽车图像来处理旋转。为此,创建一个 UIView 的子类,给它一个图像属性和一个旋转属性,然后重写“drawRect:(CGRect)rect”函数来绘制图像。
在视图控制器中放置一系列汽车听起来很棒。
将初始布局存储在 Interface Builder NIB 文件中通常是最好的选择。它使您可以在将来轻松更改界面,并减少在屏幕上创建和定位事物所需的大量样板代码。
也就是说,不可能将一堆视图绑定到单个数组出口。在这种特殊情况下,我将实现视图控制器的“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);
}