Не вызывайте view.frame.size.width ondidload, он не работает, возвращает размер stoaryboard. На самом деле вы хотите ширину устройства. Есть два варианта.
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(myCarousel)
myCarousel.dataSource = self
myCarousel.frame = CGRect(x: 0, y: 220, width: view.frame.size.width, height: 400)
// Do any additional setup after loading the view.
}
Вариант 1
override func viewDidLayoutSubviews() {
myCarousel.frame = CGRect(x: 0, y: 220, width: view.frame.size.width, height: 400)
}
Вариант 2
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(myCarousel)
myCarousel.dataSource = self
myCarousel.frame = CGRect(x: 0, y: 220, width: UIScreen.main.bounds.width, height: 400)
// Do any additional setup after loading the view.
}
Дополнительный вариант: я сделал библиотеку для просмотра карусели. Вы можете использовать это. https://github.com/sonmezvolkan/UIBannerView