UIScrollView con UIPageControl no queda centrado correctamente SWIFT

Actualmente estoy necesitando tener un UIPageControl haciendo uso del UIScrollView para poder tener un efecto de carrosuel introducir la descripción de la imagen aquí

Mi problema es que las UIView no quedan centradas cada una un ejemplo mas practico

introducir la descripción de la imagen aquí

Se me queda parte de la segunda vista como parte de la primera

Mis clases son :

class InitialViewController: CommonViewController, UIScrollViewDelegate{  @IBOutlet weak var pageControl: UIPageControl!  @IBOutlet weak var scrollView: UIScrollView!{     didSet{         scrollView.delegate = self     } }   var presenter = InitialPresenter() var slides:[Slide] = [];              override func viewDidLoad() {     super.viewDidLoad()       self.slides = createSlides()     self.setupSlideScrollView(slides: slides)     self.pageControl.numberOfPages = slides.count     self.pageControl.currentPage = 0     self.view.bringSubview(toFront: pageControl) }  override func viewWillAppear(_ animated: Bool) {     super.viewWillAppear(animated)     self.presenter.wfm = WorkflowManager.init(navigationController: self.navigationController) }   func createSlides() -> [Slide] {      let slide1:Slide = Bundle.main.loadNibNamed("ViewSlide", owner: self, options: nil)?.first as! Slide     slide1.imgCenterSlide.image = UIImage(named: "icono_transferencia_carrusel")     slide1.strLblTitle.text = NSLocalizedString("strLblTitleSlideOne_INTIAL",comment:"")     slide1.strLblSubTitle.text = NSLocalizedString("strLblSubTitleSlideOne_INTIAL",comment:"")      let slide2:Slide = Bundle.main.loadNibNamed("ViewSlide", owner: self, options: nil)?.first as! Slide     slide2.imgCenterSlide.image = UIImage(named: "icono_pago_carrusel")     slide2.strLblTitle.text = NSLocalizedString("strLblTitleSlideTwo_INTIAL",comment:"")     slide2.strLblSubTitle.text = NSLocalizedString("strLblSubTitleSlideTwo_INTIAL",comment:"")      let slide3:Slide = Bundle.main.loadNibNamed("ViewSlide", owner: self, options: nil)?.first as! Slide     slide3.imgCenterSlide.image = UIImage(named: "icono_consulta_carrusel")     slide3.strLblTitle.text = NSLocalizedString("strLblTitleSlideTree_INTIAL",comment:"")     slide3.strLblSubTitle.text = NSLocalizedString("strLblSubTitleSlideTree_INTIAL",comment:"")      let slide4:Slide = Bundle.main.loadNibNamed("ViewSlide", owner: self, options: nil)?.first as! Slide     slide4.imgCenterSlide.image = UIImage(named: "icono_simulador_carrusel")     slide4.strLblTitle.text  = NSLocalizedString("strLblTitleSlideFour_INTIAL",comment:"")     slide4.strLblSubTitle.text = NSLocalizedString("strLblSubTitleSlideFour_INTIAL",comment:"")      slide1.strLblTitle.textColor = Utils.Color.BlueLabelText     slide1.strLblSubTitle.textColor = Utils.Color.BlueLabelText      slide2.strLblTitle.textColor = Utils.Color.BlueLabelText     slide2.strLblSubTitle.textColor = Utils.Color.BlueLabelText      slide3.strLblTitle.textColor = Utils.Color.BlueLabelText     slide3.strLblSubTitle.textColor = Utils.Color.BlueLabelText      slide4.strLblTitle.textColor = Utils.Color.BlueLabelText     slide4.strLblSubTitle.textColor = Utils.Color.BlueLabelText         return [slide1, slide2, slide3, slide4] }  func setupSlideScrollView(slides : [Slide]) {     scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)     scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)     scrollView.isPagingEnabled = true      for i in 0 ..< slides.count {         slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)         scrollView.addSubview(slides[i])     } }  /*  * default function called when view is scolled. In order to enable callback  * when scrollview is scrolled, the below code needs to be called:  * slideScrollView.delegate = self or  */ func scrollViewDidScroll(_ scrollView: UIScrollView) {     let pageIndex = round(scrollView.contentOffset.x/view.frame.width)     pageControl.currentPage = Int(pageIndex)      let maximumHorizontalOffset: CGFloat = scrollView.contentSize.width - scrollView.frame.width     let currentHorizontalOffset: CGFloat = scrollView.contentOffset.x      // vertical     let maximumVerticalOffset: CGFloat = scrollView.contentSize.height - scrollView.frame.height     let currentVerticalOffset: CGFloat = scrollView.contentOffset.y      let percentageHorizontalOffset: CGFloat = currentHorizontalOffset / maximumHorizontalOffset     let percentageVerticalOffset: CGFloat = currentVerticalOffset / maximumVerticalOffset       /*      * below code changes the background color of view on paging the scrollview      */     //        self.scrollView(scrollView, didScrollToPercentageOffset: percentageHorizontalOffset)       /*      * below code scales the imageview on paging the scrollview      */     let percentOffset: CGPoint = CGPoint(x: percentageHorizontalOffset, y: percentageVerticalOffset)   }     func scrollView(_ scrollView: UIScrollView, didScrollToPercentageOffset percentageHorizontalOffset: CGFloat) {     if(pageControl.currentPage == 0) {         //Change background color to toRed: 103/255, fromGreen: 58/255, fromBlue: 183/255, fromAlpha: 1         //Change pageControl selected color to toRed: 103/255, toGreen: 58/255, toBlue: 183/255, fromAlpha: 0.2         //Change pageControl unselected color to toRed: 255/255, toGreen: 255/255, toBlue: 255/255, fromAlpha: 1           pageControl.pageIndicatorTintColor = Utils.Color.BlueLabelText            slides[pageControl.currentPage].backgroundColor = Utils.Color.LigthViewBackGround          let pageSelectedColor: UIColor = fade(fromRed: 81/255, fromGreen: 36/255, fromBlue: 152/255, fromAlpha: 1, toRed: 103/255, toGreen: 58/255, toBlue: 183/255, toAlpha: 1, withPercentage: percentageHorizontalOffset * 3)         pageControl.currentPageIndicatorTintColor = Utils.Color.BlueLabelText     } }   func fade(fromRed: CGFloat,           fromGreen: CGFloat,           fromBlue: CGFloat,           fromAlpha: CGFloat,           toRed: CGFloat,           toGreen: CGFloat,           toBlue: CGFloat,           toAlpha: CGFloat,           withPercentage percentage: CGFloat) -> UIColor {      let red: CGFloat = (toRed - fromRed) * percentage + fromRed     let green: CGFloat = (toGreen - fromGreen) * percentage + fromGreen     let blue: CGFloat = (toBlue - fromBlue) * percentage + fromBlue     let alpha: CGFloat = (toAlpha - fromAlpha) * percentage + fromAlpha      // return the fade colour     return UIColor(red: red, green: green, blue: blue, alpha: alpha) } 

}

Mi clase Slide es la siguiente

class Slide: UIView {   @IBOutlet weak var strLblTitle: UITextView!  @IBOutlet weak var imgCenterSlide: UIImageView!  @IBOutlet weak var strLblSubTitle: UITextView! @IBOutlet weak var viewBackGround: UIView! 

}

y mis contrainsts son

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Desde ya cualquuier ayuda es bienvenida no entiendo porque no puede quedar cada view centrado