gpt4 book ai didi

objective-c - 随机放置 UIViews

转载 作者:行者123 更新时间:2023-11-29 13:25:45 25 4
gpt4 key购买 nike

我想知道将多个 UIView 以随机坐标放置在屏幕上而不相互接触或接触父 View 边缘的最佳方法是什么。

谢谢!

最佳答案

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

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);

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

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

How to figure out if two CGRect intersect?

关于objective-c - 随机放置 UIViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com