在Swift 2.3中,我们可以这样编写:
var rect = CGRect(...)
rect.offsetInPlace(dx: 15, dy: 0)
Run Code Online (Sandbox Code Playgroud)
将一个矩形15pt向右移动.
但是在Swift 3中,似乎这个函数不再存在.在检查CGRect界面时,我们只能看到非变异变体offsetBy(dx:, dy:).在我们通常使用变异函数(命名...inPlace)的所有地方也是如此.我已经在GitHub上搜索了Swift evolution repo,但是找不到任何关于这个的注释.
是否删除了变异变体?剩余的功能是否会根据是否使用返回值自动变异?恕我直言,如果它们实际上已被删除,那将是一种耻辱,因为它们在进行基于代码的布局时曾经非常方便.
Car*_*lin 14
你可以制作一个兼容性.
extension CGRect {
mutating func offsetInPlace(dx: CGFloat, dy: CGFloat) {
self = self.offsetBy(dx: dx, dy: dy)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |