1

我想知道最好的方法是在屏幕上放置多个具有随机坐标的 UIView,而不会使它们相互接触或接触父视图的边缘。

谢谢!

4

1 回答 1

1

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

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 框架是否相交:

如何判断两个 CGRect 是否相交?

于 2012-11-01T20:21:56.513 回答