Here the code
func decorate(_ element:UIView, borderSize:Int, borderColor:UIColor, dashed:Bool)
{
let segmentSize = borderSize * 2
let border = CAShapeLayer()
border.strokeColor = borderColor.cgColor
border.fillColor = nil
border.lineWidth = CGFloat(borderSize)
if (dashed) {
border.lineDashPattern = [NSNumber(segmentSize), segmentSize]
}
border.path = UIBezierPath(rect:element.bounds).cgPath
border.frame = element.bounds
element.layer.addSublayer(border)
}
erroe show in this line
border.lineDashPattern = [NSNumber(segmentSize), segmentSize]
Any idea what need to change to resolve this
1 回答
问题#1
要用于
NSNumber
的初始值设定项写为:为了省略参数标签
value:
,它将被写为:由于没有下划线,您不能忽略参数标签 .
问题#2
CAShapeLayer
propertylineDashPattern
需要一个[NSNumber]?
,这是NSNumber
的可选数组 . 另请注意Array
要求所有元素都是相同的类型,因为它是一个通用集合 .解决方案
or
or
or
References
NSNumber Foundation Reference
Functions in Swift
lineDashPatter - CAShapeLayer
Working with Cocoa Frameworks - Foundation - Numbers