随机放置UIViews

时间:2012-11-01 19:53:19

标签: objective-c ios xcode uiview

我想知道最好的方法是将多个UIViews放在屏幕上,使用随机坐标,而不会相互接触或触摸父视图的边缘。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用arc4random()生成随机数。您需要将这些约束在0和父坐标视图的x坐标的框架宽度之间,并且在0和y坐标的视图框架高度之间。假设您希望它完全可见,从范围中减去随机视图框架宽度/高度。

NSInteger randomX = arc4random() % ((int)view.frame.size.width - randomView.frame.size.width);
NSInteger randomY = arc4random() % ((int)view.frame.size.height - randomView.frame.size.height);
CGRect frameRandom = CGRectMake (randomX, randomY, randomView.frame.size.width,randomView.frame.size.height);

然后,您需要枚举所有现有的随机视图,并确保新的随机视图框架与现有视图的框架不相交。

使用CGRectIntersectsRect查看两个UIView帧是否相交:

How to figure out if two CGRect intersect?