There are two ways you could approach this: 1) Manually 2) Constraints.
1) Manually set the CGPoint in a switch
You could set the CGPoint to the exact values based on screen size by using the following switch:
if UIDevice().userInterfaceIdiom == .Phone {
    switch UIScreen.mainScreen().nativeBounds.height {
        case 960:
            // Set CGPoint for 4
        case 1136:
            // Set CGPoint for 5
        case 1334:
            // Set CGPoint for 6
        case 2208:
            // Set CGPoint for 6Plus
        default:
            break
    }
}
Advantage of this: it's quick and easy. Disadvantages: It doesn't scale (pun intended) to any new potential screen sizes Apple might release. Doing this isn't really how Apple intended developers to create interfaces, which brings me to...
2) Use constraints to dynamically calculate the position
I'm not sure exactly how your view is setup, so I can't tell you exactly what constraints to use. However, you could use some mix of leading, trailing, top, bottom, centerX, and centerY to get the perfect position.
You can add constraints in the storyboard (easier in my opinion) or in Swift like this:
let pinView = UIView()
pinView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(pinView)
let horizontalConstraint = NSLayoutConstraint(item: pinView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
view.addConstraint(horizontalConstraint)
let leadingConstraint = NSLayoutConstraint(item: pinView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1, constant: 0)
view.addConstraint(leadingConstraint)
The nice things about constraints are that 1) this is how Apple intended it 2) it scales 3) there's less manual calculating to do.
For more information on constraints, I'd give these a read: