CGRectDivide 在 swift 3 中被弃用

CGRectDivide is deprecated in swift 3

正如 swift 3 所说 CGRectDivide 已弃用,替换为 divided(atDistance: CGFloat, from fromEdge: CGRectEdge) -> (slice: CGRect, remainder: CGRect)

据我所知,CGRectDivide 默认情况下将源矩形分成两个组件矩形。 问题是要做什么以及使用什么来执行与 CGRectDivide 使用 swift 3?

相同的操作

更新 1:swift 2 函数如下所示:

fileprivate func isLeftPointContainedWithinBezelRect(_ point: CGPoint) -> Bool{
    if let bezelWidth = SlideMenuOptions.leftBezelWidth {
        var leftBezelRect: CGRect = CGRect.zero
        var tempRect: CGRect = CGRect.zero

        CGRectDivide(view.bounds, &leftBezelRect, &tempRect, bezelWidth, CGRectEdge.minXEdge)

        print("------> slidee1")

        return leftBezelRect.contains(point)
    } else {
        return true
    }
}

在swift3中可以这样写

let rect = CGRect(x: 0, y: 0, width: 50, height: 50)
let (slice, remainder) = rect.divided(atDistance: 5.0, fromEdge: .minXEdge)
print(slice)
print(remainder)

输出

(0.0, 0.0, 5.0, 50.0)
(5.0, 0.0, 45.0, 50.0)

编辑:在你的情况下它被写成。

(leftBezelRect, tempRect) = view.bounds.divided(atDistance: bezelWidth, fromEdge: .minXEdge)