Swift 无法将类型 'CGPath' 的值分配给类型 'CGPath?' 的值
Swift Cannot assign a value of type 'CGPath' to a value of type 'CGPath?'
我正在尝试将 UITextField
的左上角和左下角四舍五入。这是我使用的代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath
locationText.layer.mask = maskLayer;
}
行
maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath
产生错误
Cannot assign a value of type 'CGPath' to a value of type 'CGPath?'
这让我感到困惑,因为我已经能够在代码的其他地方毫无问题地将值设置为可选值。有人可以帮助我了解我做错了什么吗?
如果您使用 swift 2.0 和 Xcode beta,这可能是编译器的一个错误,它试图告诉您应该使用数组来指示角
maskLayer.path = UIBezierPath(roundedRect: self.view.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath
我正在尝试将 UITextField
的左上角和左下角四舍五入。这是我使用的代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath
locationText.layer.mask = maskLayer;
}
行
maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath
产生错误
Cannot assign a value of type 'CGPath' to a value of type 'CGPath?'
这让我感到困惑,因为我已经能够在代码的其他地方毫无问题地将值设置为可选值。有人可以帮助我了解我做错了什么吗?
如果您使用 swift 2.0 和 Xcode beta,这可能是编译器的一个错误,它试图告诉您应该使用数组来指示角
maskLayer.path = UIBezierPath(roundedRect: self.view.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath