Swift 4: для последних версий iOS 11 и более поздних версий
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 11.0, *) {
self.viewToRound.clipsToBounds = true
viewToRound.layer.cornerRadius = 20
viewToRound.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
} else {
// Fallback on earlier versions
}
}
Предыдущие версии iOS (10,9 и т. Д.) (Также работает для iOS 11)
override func viewDidLayoutSubviews() {
self.viewToRound.clipsToBounds = true
let path = UIBezierPath(roundedRect: viewToRound.bounds,
byRoundingCorners: [.topRight, .topLeft],
cornerRadii: CGSize(width: 20, height: 20))
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
viewToRound.layer.mask = maskLayer
}
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( String.format(msf, (o :: os.toList).toArray : _* ))
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( String.format(msf, o :: os.toList : _* ) )
или
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( msf format (o :: os.toList : _* ) )
Я предпочитаю последнее, хотя в нем нет поддержки локали *.