如何在Swift中组合多个CGRect?

9

我想知道是否有任何方法可以将一个CGRect与另一个CGRect组合起来以获得一个新的CGRect。Swift是否具有预设功能来执行此操作,或者是否有其他实现方式?


1
这是否假定矩形彼此相邻?一般情况下,“合并”两个矩形的算法/方法是什么? - Craig Otis
@CraigOtis 是的,确切地说,比如说两个相邻的CGRect。我想知道是否可以将它们合并在一起。 - Zouvv
@rmaddy CGRectUnion: “返回包含两个源矩形的最小矩形。” 我认为这不是正确的。 - Zouvv
1
@Zouvv请澄清您实际需要的内容,因为我认为CGRectUnion是您想要的。 - rmaddy
@rmaddy,我有两个相邻的CGRect,现在想将它们合并成一个CGRect。虽然我会尝试这样做,但还是谢谢您提供的建议。 - Zouvv
2个回答

18

11

Swift 3及更高版本:

let rect1 = CGRect(x: 0, y: 0, width: 100, height: 100)
let rect2 = CGRect(x: 40, y: 40, width: 150, height: 150)
let union = rect1.union(rect2) // {x 0 y 0 w 190 h 190}

结果是标准化的,因此得到的宽度和高度始终为正:

let rect3 = CGRect(x: 0, y: 0, width: -100, height: -100)
let clone = rect3.union(rect3) // {x -100 y -100 w 100 h 100}

Documentation: https://developer.apple.com/documentation/coregraphics/cgrect/1455837-union


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接