似乎无法使用包含参数byRoundingCorners参数的UIBezierPath的典型初始化:
var maskPath = UIBezierPath(roundedRect: headerView.bounds, byRoundingCorners: (UIRectCorner.TopLeft | UIRectCorner.TopRight), cornerRadii: 5.0)
给出错误“调用中的额外参数'byRoundingCorners”
这是Swift的错误吗?
最佳答案
就错误消息而言,这是一个Swift错误。
真正的错误是cornerRadii
参数的类型为CGSize
,
但您传递的是浮点数(比较Why is cornerRadii parameter of CGSize type in -[UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?)。
这应该工作(Swift 1.2):
var maskPath = UIBezierPath(roundedRect: headerView.bounds,
byRoundingCorners: .TopLeft | .TopRight,
cornerRadii: CGSize(width: 5.0, height: 5.0))
请注意,在Swift 2中,byRoundingCorners参数的类型已更改为
OptionSetType
:var maskPath = UIBezierPath(roundedRect: headerView.bounds,
byRoundingCorners: [.TopLeft, .TopRight],
cornerRadii: CGSize(width: 5.0, height: 5.0))