在Swift 2.3中,我们可以这样写:
var rect = CGRect(...)
rect.offsetInPlace(dx: 15, dy: 0)
将矩形15点向右移动。
然而,在Swift 3中,这个功能似乎已经不存在了。当检查CGRect
界面时,我们只能看到非突变变体offsetBy(dx:, dy:)
。在我们通常使用变异函数(名为...inPlace
)的所有地方也是如此。我已经在GitHub上搜索了Swift进化存储库,但找不到任何关于这方面的注释。
变异的变种被移除了吗?剩余的函数是否会根据是否使用返回值而自动发生变化?如果它们真的被移除了,那就太可惜了,因为它们过去在做基于代码的布局时非常方便。
发布于 2016-09-13 03:44:26
似乎不再有offsetInPlace
了。请看这里的屏幕是Instance Methods
中的所有可用功能
发布于 2016-09-16 06:16:15
为了兼容,您可以创建一个。
extension CGRect {
mutating func offsetInPlace(dx: CGFloat, dy: CGFloat) {
self = self.offsetBy(dx: dx, dy: dy)
}
}
https://stackoverflow.com/questions/39438362
复制相似问题