iOS swift добавить контроллер uipageview внутри uiScrollview - PullRequest
1 голос
/ 01 марта 2020

Я хотел бы добавить контроллер uipageview внутри UIscrollview. Все добавлено, как и ожидалось. Но UIScrollView не прокручивается. По сути, весь viewController загружается в ландшафтном режиме. Я загружаю книгу с помощью UIPageViewController и добавляю ее в представление прокрутки, чтобы пользователи могли как прокручивать страницу, чтобы увидеть полную страницу, так и изменять страницу, которая обрабатывается с помощью pageviewcontroller.

Именно поэтому я использую контроллер просмотра страниц внутри прокрутки

Output

class QuranLandController: UIViewController {

    @IBOutlet weak var quranContainer: UIView!
    @IBOutlet weak var scrollView: UIScrollView!

    // UIPageViewController
    let controller = QuranPagerController()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        addChildViewController(controller)
        controller.view.translatesAutoresizingMaskIntoConstraints = false

        quranContainer.layout(controller.view)
            .width().top().left().right().height(900)
//        containerView.addSubview(controller.view)
//
//        NSLayoutConstraint.activate([
//            controller.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
//            controller.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
//            controller.view.topAnchor.constraint(equalTo: containerView.topAnchor),
////            quranContainer.heightAnchor.constraint(equalToConstant: 900),
//            controller.view.heightAnchor.constraint(equalTo: containerView.heightAnchor),
//            controller.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
//            ])

//        let contentRect: CGRect = quranScrollContainer.subviews.reduce(into: .zero) { rect, view in
//            rect = rect.union(view.frame)
//        }
//        quranScrollContainer.contentSize = contentRect.size

        controller.didMove(toParentViewController: self)

        //        Translator().defaultTranslation()
        for recognizer in controller.gestureRecognizers {
            if recognizer is UITapGestureRecognizer {
                recognizer.isEnabled = false
            }
        }

        let value = UIInterfaceOrientation.landscapeRight.rawValue
        UIDevice.current.setValue(value, forKey: "orientation")
    }

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .landscapeRight
    }

    override var shouldAutorotate: Bool {
        return true
    }

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */

}

1 Ответ

0 голосов
/ 01 марта 2020

Создайте UIPageViewController и поместите UIViewController с UIScrollView в качестве страницы.

Каждая страница будет прокручиваться вниз.

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