结合两个CGRect

时间:2016-11-04 15:30:14

标签: swift swift3 cgrect

有没有办法合并两个CGRect? 我想将“y:65.0”添加到现有的CGRect中,似乎无法找到任何方法。 听起来对我来说是一项简单的任务,但在Xcode中似乎无法做到,因为CGRect之间不允许使用“+ =”。

编辑:尝试使用 offsetBy 并使用以下代码添加它们。添加CGRect时,我收到错误消息:No '+' candidates produce the expected contextual result type 'CGRect'

    var fromRect:CGRect = self.tableView.rectForRow(at: indexPath)
    let addRect = CGRect(x: 0.0, y: 65.0, width: 0.0, height: 0.0)

    //fromRect.offsetBy(dx: 0, dy: 65.0)
    fromRect = fromRect + addRect

2 个答案:

答案 0 :(得分:0)

或许您可以自己实施一个操作员:

func +(left: CGRect, right: CGRect) -> CGRect {
    let origin = CGPoint(x: left.origin.x + right.origin.x, y: left.origin.y + right.origin.y)
    let size = CGSize(width: left.size.width + right.size.width, height: left.size.height + right.size.height)
    return CGRect(origin: origin, size: size)
}

func +=(left: inout CGRect, right: CGRect) {
    left = left + right
}

但是在不使用运算符的情况下,该问题有一个更简单的解决方案: 这样做:(我不确定这个部分,因为你似乎想要做一些更复杂的事情?)

rect.origin.y += 65 

答案 1 :(得分:0)

如果您想要在矩形位置添加偏移量,就像添加y:65的示例一样,您可以使用rect.offsetBy(dx: 0, dy: 64)