nir*_*i21 237 uikit swift3 ios10 xcode8
将代码转换为最新的swift 3.0后,我显示此错误.
还告诉我解决方案 CGSize = CGSizeMake(0,0)
static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero
Run Code Online (Sandbox Code Playgroud)
哪个也不可用.
小智 486
CGRect
可以使用a CGPoint
或CGSize
下面给出的实例简单地创建.
let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 100, height: 100))
// Or
let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 100))
Run Code Online (Sandbox Code Playgroud)
或者,如果我们要指定在每个值CGFloat
或Double
或者Int
,我们可以用这个方法.
let rect = CGRect(x: 0, y: 0, width: 100, height: 100) // CGFloat, Double, Int
Run Code Online (Sandbox Code Playgroud)
CGPoint
可以像这样创建.
let point = CGPoint(x: 0,y :0) // CGFloat, Double, Int
Run Code Online (Sandbox Code Playgroud)
CGSize
可以像这样创建.
let size = CGSize(width: 100, height: 100) // CGFloat, Double, Int
Run Code Online (Sandbox Code Playgroud)
同样大小并指向0作为值,它可以这样做.
let size = CGSize.zero // width = 0, height = 0
let point = CGPoint.zero // x = 0, y = 0, equal to CGPointZero
let rect = CGRect.zero // equal to CGRectZero
Run Code Online (Sandbox Code Playgroud)
CGRectZero
&CGPointZero
替换为CGRect.zero
&CGPoint.zero
在Swift 3.0
.
Raf*_*sun 46
快速修复Swift3和iOS10中的CGRectMake,CGPointMake,CGSizeMake
添加以下扩展名:
extension CGRect{
init(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat) {
self.init(x:x,y:y,width:width,height:height)
}
}
extension CGSize{
init(_ width:CGFloat,_ height:CGFloat) {
self.init(width:width,height:height)
}
}
extension CGPoint{
init(_ x:CGFloat,_ y:CGFloat) {
self.init(x:x,y:y)
}
}
Run Code Online (Sandbox Code Playgroud)
然后转到" 在工作区中查找和替换 "查找CGRectMake,CGPointMake,CGSizeMake并将其替换为CGRect,CGPoint,CGSize
这些步骤可能会一直保存,因为Xcode现在不能让我们从Swift 2+快速转换到Swift 3
gur*_*uru 26
在Swift 3中,您可以简单地使用CGPoint.zero
或CGRect.zero
代替CGRectZero
或CGPointZero
.
但是,在Swift 4中,CGRect.zero
并且'CGPoint.zero'
会起作用
CaO*_*433 10
如果你想在swift 2中使用它们,你可以使用这些函数:
对于CGRectMake:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect {
return CGRect(x: x, y: y, width: width, height: height)
}
Run Code Online (Sandbox Code Playgroud)
对于CGPointMake:
func CGPointMake(_ x: CGFloat, _ y: CGFloat) -> CGPoint {
return CGPoint(x: x, y: y)
}
Run Code Online (Sandbox Code Playgroud)
对于CGSizeMake:
func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize {
return CGSize(width: width, height: height)
}
Run Code Online (Sandbox Code Playgroud)
把它们放在任何一个班级之外,它应该工作.(至少对我有用)
Core Graphics和其他API中的结构以及所有其他符号变得更清晰,并且还包括参数名称. https://developer.apple.com/reference/coregraphics#symbols
CGRect(x: Int, y: Int, width: Int, height: Int)
CGVector(dx: Int, dy: Int)
CGPoint(x: Double, y: Double)
CGSize(width: Int, height: Int)
Run Code Online (Sandbox Code Playgroud)
CGPoint示例:
let newPoint = stackMid.convert(CGPoint(x: -10, y: 10), to: self)
Run Code Online (Sandbox Code Playgroud)
CGVector示例:
self.physicsWorld.gravity = CGVector(dx: 0, dy: gravity)
Run Code Online (Sandbox Code Playgroud)
CGSize示例:
hero.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 16, height: 18))
Run Code Online (Sandbox Code Playgroud)
CGRect示例:
let back = SKShapeNode(rect: CGRect(x: 0-120, y: 1024-200-30, width: 240, height: 140), cornerRadius: 20)
Run Code Online (Sandbox Code Playgroud)
Apple博客
Swift 3中的Swift语法和API重命名更改使语言感觉更自然,并在调用Cocoa框架时提供更多Swift-y体验.流行的框架Core Graphics和Grand Central Dispatch在Swift中拥有新的,更清晰的界面.
小智 5
请尝试以下方法:
var myToolBar = UIToolbar.init(frame: CGRect.init(x: 0, y: 0, width: 320, height: 44))
Run Code Online (Sandbox Code Playgroud)
这是swift的最新版本
Swift 3 Bonus:为什么没有人提到短片?
CGRect(origin: .zero, size: size)
Run Code Online (Sandbox Code Playgroud)
.zero
代替 CGPoint.zero
定义类型后,您可以安全地省略它.
归档时间: |
|
查看次数: |
156762 次 |
最近记录: |