2012-11-01 117 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?