Swift 3.0中CGSizeMake的替代方案?升级后代码报错求助
Swift 3.0 中 CGSizeMake 的替代方案
嘿,刚好我升级Swift 3的时候也踩过这个坑!苹果在Swift 3里把Core Graphics里一堆XXXMake系列方法都废弃了,换成了更贴合Swift语法的结构体初始化方式。针对你这段设置scrollView内容尺寸的代码,有几个实用的替代方案:
官方推荐:直接使用CGSize的结构体初始化器
这是最标准、最符合Swift风格的写法,完全替代CGSizeMake的功能,参数名清晰可读性更强。把你的代码改成这样就行:self.scrollView.contentSize = CGSize(width: self.view.frame.width*2, height: self.view.frame.size.height)可选写法:显式调用init初始化器
和上面的方案本质一致,只是多写了init关键字,如果你觉得这样更明确也可以用:self.scrollView.contentSize = CGSize.init(width: self.view.frame.width*2, height: self.view.frame.size.height)不过通常省略
init会更简洁。过渡方案:自定义扩展模拟CGSizeMake
要是你一时改不过来旧写法的习惯,可以给CGSize写个简单扩展,模拟原来的调用逻辑:extension CGSize { static func make(width: CGFloat, height: CGFloat) -> CGSize { return CGSize(width: width, height: height) } }之后就能像以前那样调用(只是变成了命名参数):
self.scrollView.contentSize = CGSize.make(width: self.view.frame.width*2, height: self.view.frame.size.height)不过这个只是过渡用的小技巧,还是建议尽快适应官方的初始化写法哦。
内容的提问来源于stack exchange,提问作者michael portendorfer
相关产品推荐
相关产品推荐

