向下移动 CGRect?

问题描述 投票:0回答:2

有什么办法可以...

我想将“y of 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
swift swift3 cgrect
2个回答
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 

0
投票

如果您想在矩形位置上添加偏移量,如添加 y:65 的示例,您可以使用

rect.offsetBy(dx: 0, dy: 64)

© www.soinside.com 2019 - 2024. All rights reserved.