You could draw the background with some bezier curves which shouldn't be too hard to do. You especially want to do this if you want to recreate something like into the bottom of that example as well.
Here's a custom view you can use. it just overrides the drawing and makes its background with a bezier path that has a rounded top
You can just adjust the height and curve with the static values I inserted.
class CurvedView: UIView {
override func drawRect(rect: CGRect) {
let y:CGFloat = 20
let curveTo:CGFloat = 0
let myBezier = UIBezierPath()
myBezier.moveToPoint(CGPoint(x: 0, y: y))
myBezier.addQuadCurveToPoint(CGPoint(x: rect.width, y: y), controlPoint: CGPoint(x: rect.width / 2, y: curveTo))
myBezier.addLineToPoint(CGPoint(x: rect.width, y: rect.height))
myBezier.addLineToPoint(CGPoint(x: 0, y: rect.height))
myBezier.closePath()
let context = UIGraphicsGetCurrentContext()
CGContextSetLineWidth(context, 4.0)
UIColor.whiteColor().setFill()
myBezier.fill()
}
}
Another way would be to just make a white view that is much bigger than the screen. I'm guessing 3 times the screen width. Then just set the corner radius to half of its width making it round.