在4或5 x / y坐标之间随机移动UILabel

时间:2011-02-06 17:41:54

标签: iphone objective-c ios random

我试图找出一种方法将UILabel随机移动到屏幕上不同的预定点(也就是说,从一个预先确定的点列表中随机选择并移动到那里)。

我最初的想法是编写一个从数组中随机选择的方法,但是我需要两个单独的数组用于x和Y吗?任何建议或正确方向的观点将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以调整此问题的代码(从数组中获取随机对象) Random Text Sent to UILabel

您可以将CGPoint存储在NSValue中,然后存储在数组中(因为您不能将CGPoint直接放在NSArray中,因为它不是对象)例如:

NSArray *arrayOfPoints = [NSArray arrayWithObjects:[NSValue valueWithCGPoint:point1],
                          [NSValue valueWithCGPoint:CGPointMake(12, 14)],
                          nil];

(上面的示例代码只存储2个点,您可以拥有任意数量的内容,第一个值是CGPoint已经存在/动态创建,第二个值是如果您想在点)

将代码从我链接的问题中移除,并根据您的问题进行调整:

CGPoint randomPoint = [arrayOfPoints objectAtIndex:arc4random() % [arrayOfPoints count]];

myLabel.frame = CGRectMake(randomPoint.x, randomPoint.y, myLabel.frame.size.width, myLabel.frame.size.height);