我试图找出一种方法将UILabel随机移动到屏幕上不同的预定点(也就是说,从一个预先确定的点列表中随机选择并移动到那里)。
我最初的想法是编写一个从数组中随机选择的方法,但是我需要两个单独的数组用于x和Y吗?任何建议或正确方向的观点将不胜感激。
答案 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);