UIPageViewController UIImage不显示全屏

Ada*_*dam 5 fullscreen uiimage ios tabview uipageviewcontroller

我正在制作一个标签视图控制器的应用程序.对于第一个选项卡,我有一个滚动图片的UIPageViewController.一切正常,除了图片没有全屏显示.我为图像视图设置了约束以覆盖整个视图控制器,但是当它被加载到页面视图中时,它不会一直覆盖到底部.图像被滚动点指示符切断,然后它只是白色.

我确信它很简单,但有没有一种方法可以覆盖整个屏幕,就像我有限制设置一样?

如您所见,图像停在点开始的底部. 我希望它一直向下到底. 所以带点的区域是透明的.

Dol*_*lma 6

该页面上有一个非常简单的解决方案:http://tunesoftware.com/?p = 3363

它是通过覆盖UIPageViewControllerviewDidLayoutSubviews方法完成的,基本上做了两件事:

  1. 通过将其框架设置为页面控制器视图的边界来增加UIPageViewControllerUIScrollView(内容)的边界
  2. UIPageControl元素(点)移动到视图层次结构的前面,使其位于内容的前面

这是他提供的代码(如果链接被破坏):

import UIKit

class TSPageViewController: UIPageViewController {

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        var subViews: NSArray = view.subviews
        var scrollView: UIScrollView? = nil
        var pageControl: UIPageControl? = nil

        for view in subViews {
            if view.isKindOfClass(UIScrollView) {
                scrollView = view as? UIScrollView
            }
            else if view.isKindOfClass(UIPageControl) {
                pageControl = view as? UIPageControl
            }
        }

        if (scrollView != nil && pageControl != nil) {
            scrollView?.frame = view.bounds
            view.bringSubviewToFront(pageControl!)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

之后你要做的就是:

  • 如果在故事板中设置页面控制器,则只需转到身份检查器窗格并将其类更改为TSPageViewController
  • 如果在代码中设置页面控制器,那么只需确保为其定义的类继承TSPageViewController

干杯,乔