Настройте вид карусели для разных размеров экрана в Xcode для iOS - PullRequest
0 голосов
/ 06 августа 2020

Я установил следующую карусель на своем контроллере просмотра. Я хотел спросить, как я могу настроить карусель для разных размеров экрана, поскольку у меня нет физических ограничений, установленных в моей раскадровке? Я уже настроил класс ограничений для разных устройств, но как связать этот класс с ограничениями представления карусели? Ценю вашу помощь!

let myCarousel: iCarousel = {
    let view = iCarousel()
    view.type = .rotary
    return view
}()

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 Ответ

1 голос
/ 06 августа 2020

Не вызывайте 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...