【发布时间】:2019-07-29 22:20:29
【问题描述】:
我需要做的就是创建一个包含UIBezierPath 的CGRect,并且我有一个CGPoint 数组。
要创建这个CGRect,我需要做的就是枚举CGPoint 的数组并找到最小和最大X 和Y 坐标。
然后我记得旧的和好的 NSArray 有一个名为 valueForKeyPath 的函数,它可以与 valueForKeyPath:@max.x 或 valueForKeyPath:@min.x 之类的东西结合使用,可以神奇地找到最小值和最大值x 和 y。
我是 Swift 的新手。这是我第一次使用 Swift 编写严肃的代码。
在 Swift 数组中是否有任何魔法可以用来做到这一点,而不是创建复杂的枚举和循环?
【问题讨论】:
-
你也可以在 Swift 中使用集合的 max 和/或 min 方法。顺便说一句,在 Swift 中编码时,您应该始终使用本机集合。 Array 总是优于 NSArray。
-
好的,我知道我不应该在 swift 中使用 NSArray,但请记住我有一个 CGPoint 数组,所以我猜我不能使用 min/max。
-
if let maxX = points.max(by: { $0.x < $1.x }) {print(maxX)} -
@Rob 是的,只是直线。
bounds...我怎么能错过。谢谢。如果您将此作为答案,我会接受,因为这是最佳答案。