在Array中访问UIButton对象的位置

时间:2012-02-12 19:20:52

标签: iphone objective-c arrays

我有一个UIButtons数组。我想要做的是使用另一个按钮,随机设置数组中每个按钮的位置。

所以我使用UIButtons初始化数组:

 buttonArray = [[NSMutableArray alloc] initWithObjects:button1,button2,button3,button4,button5,button6,button7, nil];

然后我有一个随机方法来设置每个按钮的位置。 这是我被卡住的部分。我发现了一些关于必须在数组中强制转换对象类型的线程,以便编译器理解。但我似乎无法使其发挥作用。

- (IBAction)randomizePositions:(id)sender 
{
    for (int i = 0; i < [buttonArray count]; ++i) 
    {
        float xPos = arc4random() % 1000;
        float yPos = arc4random() % 700;
        CGRect randomPosition = CGRectMake(xPos, yPos, button1.frame.size.width, button1.frame.size.width);
        (UIButton *)[buttonArray objectAtIndex:i].frame = randomPosition;
    }
}

这一部分我似乎无法做对。现在很明显,我是初学者,所以任何帮助都会有很大帮助。

(UIButton *)[buttonArray objectAtIndex:i].frame = randomPosition;

1 个答案:

答案 0 :(得分:2)

您可能希望先前获取指向数组中UIButton的指针,因为可能更容易考虑您正在使用的内容。

- (IBAction)randomizePositions:(id)sender 
{
    for (int i = 0; i < [buttonArray count]; ++i) 
    {
        UIButton *currentButton = (UIButton *)[buttonArray objectAtIndex:i];
        float xPos = arc4random() % 1000;
        float yPos = arc4random() % 700;
        [currentButton setFrame:CGRectMake(xPos, yPos, currentButton.frame.size.width, currentButton.frame.size.height)];
    }
}

当然,除非您希望始终使用button1大小。