Я хотел бы добавить контроллер uipageview внутри UIscrollview. Все добавлено, как и ожидалось. Но UIScrollView не прокручивается. По сути, весь viewController загружается в ландшафтном режиме. Я загружаю книгу с помощью UIPageViewController и добавляю ее в представление прокрутки, чтобы пользователи могли как прокручивать страницу, чтобы увидеть полную страницу, так и изменять страницу, которая обрабатывается с помощью pageviewcontroller.
Именно поэтому я использую контроллер просмотра страниц внутри прокрутки
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.
}
*/
}