2012-11-01 88 views
1

我想知道什么是最好的方法是将多个UIViews随机坐标放在屏幕上,而不需要它们相互接触或触摸父视图的边缘。随机放置UIViews

谢谢!

回答

1

使用arc4random()生成随机数。你需要将这些限制在x坐标的0和你的父视图框架宽度之间,以及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?