【问题标题】:How to combine CGRects with each other in Swift如何在 Swift 中将 CGRect 相互结合
【发布时间】:2015-05-29 15:54:06
【问题描述】:

我想知道是否有任何方法可以将 CGRect 与另一个 CGRect 组合来获得新的 CGRect。 swift 是否有任何预设功能可以做到这一点,还是有其他方法可以做到这一点?

【问题讨论】:

  • 这是否假设矩形彼此相邻?一般来说,“组合”两个矩形的算法/方法是什么?
  • @CraigOtis 是的,例如两个相邻的 CGRect。我想知道是否可以将两者结合起来。
  • @rmaddy CGRectUnion:“返回包含两个源矩形的最小矩形。”我不认为它是正确的
  • @Zouvv 澄清你真正在寻找什么,因为我认为CGRectUnion 是你想要的。
  • @rmaddy 我很简单地有两个相邻的 CGRect,然后我想将它们组合成一个 CGRect。但无论如何我都会尝试,谢谢

标签: ios swift cgrect


【解决方案1】:
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}

查看更多:

【讨论】:

    【解决方案2】:

    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}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 2016-11-15
      • 2019-02-09
      • 1970-01-01
      相关资源
      最近更新 更多