我在Swift項目中使用了這段代碼。 下面的代碼工作得很好斯威夫特2,但似乎並沒有在斯威夫特3不再工作,它提供了以下錯誤:Swift 3 GCFloat到GCRect
無法指定類型的值「(CGFloat的,CGFloat的,INT,INT)」到類型'的CGRect'
if plusLayer == nil {
plusLayer = CALayer()
let halfWidth: CGFloat = self.bounds.size.width/2
let halfHeight: CGFloat = self.bounds.size.height/2
let ds: CGFloat = sqrt(halfWidth * halfWidth/2)
let x: CGFloat = halfWidth + ds - 27/2
let y: CGFloat = halfHeight - ds - 27/2
plusLayer.frame = (x, y, 27, 27)
plusLayer.contentsGravity = kCAGravityResizeAspectFill
if let i = plusSignImage {
plusLayer.contents = i.cgImage
} else {
plusSignImage = UIImage(named: "PlusSign", in: Bundle(for: self.dynamicType), compatibleWith: UITraitCollection(displayScale: UIScreen.main().scale))
plusLayer.contents = plusSignImage!.cgImage
}
layer.addSublayer(plusLayer)
}
任何人都知道如何解決這個問題呢?幫助,真的很感激!
謝謝! :d
plusLayer.frame = CGRectMake(x,y,CGFloat(27),CGFloat(27))是否有效? –
您確定此代碼可以與Swift 2一起使用嗎?我無法得到它編譯 - 你不能分配一個元組到一個結構。使用初始化CGRect(x:x,y:y,寬度:27,高度:27)' – Hamish