0
ContainerView内にPageControllerを埋め込みました。 PageControllerに表示されるビューがPageControllerに合わせて縮尺されていないのはなぜですか? 「スケール・フィット」を達成するにはどうすればいいですか? (少なくともPageControllerで自身がContainerViewにそのサイズを適応させる)iOS/Swift 3:UIViewがUIPageController内で大きすぎます
私のクラスは、次のとおりです。
import UIKit
class YellowController : UIViewController
{
}
class GreenController : UIViewController
{
}
//from a tutorial:
class PageController : UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate
{
// from stackoverflow to avoid the black box at the bottom of the pagecontroller
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
for view in self.view.subviews
{
if view is UIScrollView
{
view.frame = UIScreen.main.bounds
}
else
{
view.backgroundColor = UIColor.clear
}
}
}
lazy var VCArray: [UIViewController] =
{
return [self.VCInstance(name: "InfoPage"),
self.VCInstance(name: "FragePage"),
self.VCInstance(name: "AntwortPage") ]
}()
private func VCInstance (name: String) -> UIViewController
{
let VCC = UIStoryboard(name: "Lerneinheit", bundle: nil).instantiateViewController(withIdentifier: name)
return VCC
}
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
self.delegate = self
if let InfoPage = VCArray.first
{
setViewControllers([InfoPage], direction: .forward, animated: true, completion: nil)
}
}
public func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
{
guard let viewControllerIndex = VCArray.index(of: viewController)
else
{
return nil
}
if (viewControllerIndex<1)
{
return nil
}
return VCArray[viewControllerIndex - 1]
}
public func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?
{
guard let viewControllerIndex = VCArray.index(of: viewController)
else
{
return nil
}
if viewControllerIndex == VCArray.count-1
{
return nil
}
return VCArray[viewControllerIndex + 1]
}
public func presentationCount(for pageViewController: UIPageViewController) -> Int
{
return VCArray.count
}
public func presentationIndex(for pageViewController: UIPageViewController) -> Int
{
guard let firstViewController = viewControllers?.first, let firstViewControllerIndex = VCArray.index(of: firstViewController)
else
{
return 0
}
return firstViewControllerIndex
}
IB:PageControllerで合うように代わりにスケーリングされたのカットbeeingて黄色ビューWTH 結果: 黄色ビューの 制約:
より多くのデータを提供する必要があります。 "Two Controller"には実際にラベルの中に埋め込まれたスクロールビューが含まれていますか? 自動レイアウトを正しく使用していますか? VCをUIPageにどのように「フィード」しますか? スニップコードを入力すると便利です – OhadM
txtInfoはそのVC内でスクロール可能ですか?また、灰色の制約があるように見えますが、削除してください。 – OhadM
はい、スクロール可能です。 – daviid