-5

这是我关于 Stack Overflow 的第一个问题,所以我希望我足够清楚。

我正在为 iPhone 设计游戏,但无法显示某些对象。我有一个 NSMutableArray 对象(子类 UIImageView 的自定义对象类),我希望能够将它们全部显示在屏幕上。但是,数组可以改变大小,所以我不能直接链接界面生成器中的每个元素。有谁知道我如何开始解决这个问题?

谢谢!

编码:

//This code is in the viewController.m file
//The main array of objects is nodeList. Each node subclasses UIImageView.
//nodeList was also synthesized at the beginning of the file with @synthesize.


//initialize array
nodeList= [[NSMutableArray alloc] initWithCapacity:(vertLinks*horizLinks)];

//make center node
Node *n = [Node alloc];

//Initialize the node (just puts an x and y position in, and gives it a mass)
[n nodeInit:(startX):(startY):(nodeMass)];
[nodeList addObject:(n)];

//creates a 'web' of nodes, and adds each one to the array
for (int i = 1; i < vertLinks; i++)
{
    for (int j = 0; j < horizLinks; j++)
    {
        //draw the line to each point
        int nodeX = (startX + cos(((360 / horizLinks) * j) * (M_PI / 180)) * rad * i);
        int nodeY = (startY + sin(((360 / horizLinks) * j) * (M_PI / 180)) * rad * i);

        //add it to the screen
        Node *nd = [Node alloc];

        [nd nodeInit:(nodeX):(nodeY):(nodeMass)];

        if (i == vertLinks - 1)
        {
            nd.solid = true;
        }

        [nodeList addObject:(nd)];
    }
}
4

1 回答 1

0

有点难以准确回答,但基本上你需要遍历数组中的对象,并分别添加每个对象。如果这些对象是 UIView、UIImageView 或 UIButton 之类的视图,那么您可以这样做:

for (int i=0; i<array.count; i++) {
   UIView *thisView = [array objectAtIndex:i];
   [self.view addSubview:thisView]
}

如果它们是字符串或数字或其他东西,那么您需要创建标签或文本字段或其他东西来显示对象。

for (int i=0; i<array.count; i++) {
   NSString *string = [array objectAtIndex:i];
   UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100*i, 100, 100)];
   [label setTitle:string];
   [self.view addSubview:label]
}

你在谈论什么对象类型真的很重要。如果您需要任何真正的帮助,您需要告诉我们这些是什么类型的图像。这也是正确的发帖方式。

请发布更多详细信息,我很乐意继续我的回答。

于 2012-06-30T07:32:50.320 回答