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 を使用して、2 つの UIView フレームが交差しているかどうかを確認します。

2 つの CGRect が交差しているかどうかを調べる方法は?

于 2012-11-01T20:21:56.513 に答える