Ich verwende UIPageViewController, um Bilder im Vollbildmodus anzuzeigen. Problem ist, dass die Bilder nicht den ganzen Bildschirm anzeigen. Stattdessen befindet sich unten zwischen dem Bild und den Seitenkontrollpunkten und oben auf der Seite eine Lücke. Ich habe einen UIViewController, der UIPageController als Unteransicht/Kind hinzugefügt wird und dass ViewController die Bilder mit ImageView gezeigt hat. Ich versuche dies in swift/Storyboard zu tun.machen Bildansicht Vollbildansicht Controller/Seitenansicht Controller (Swift)
Ich ändere die obere Leiste und die untere Leiste Option auf "keine" im Storyboard, aber es hat nicht funktioniert.
Bildvorschau:
Die ChildViewControllerCode:
class BoatContentViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
var pageIndex: Int!
var titleText: String!
var imageFile: String!
override func viewDidLoad() {
super.viewDidLoad()
self.imageView.image = UIImage(named: self.imageFile)
self.titleLabel.text = self.titleText
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
Die mainViewControllerCode:
class BoatViewController: UIViewController, UIPageViewControllerDataSource {
@IBOutlet weak var loginButton: UIButton!
@IBOutlet weak var skipButton: UIButton!
var pageViewController: UIPageViewController!
var pageTitles: NSArray!
var pageImages: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
loginButton.backgroundColor = UIColor.clearColor()
loginButton.layer.cornerRadius = 5
loginButton.layer.borderWidth = 1
loginButton.layer.borderColor = UIColor.purpleColor().CGColor
skipButton.backgroundColor = UIColor.whiteColor()
skipButton.layer.cornerRadius = 5
skipButton.layer.borderWidth = 1
skipButton.layer.borderColor = UIColor.whiteColor().CGColor
self.pageTitles = NSArray(objects: "", "", "", "", "")
self.pageImages = NSArray(objects: "onboarding1", "onboarding2", "onboarding3", "onboarding4", "onboarding5")
self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("BoatPageViewController") as! UIPageViewController
self.pageViewController.dataSource = self
var startVC = self.viewControllerAtIndex(0) as BoatContentViewController
var viewControllers = NSArray(object: startVC)
self.pageViewController.setViewControllers(viewControllers as [AnyObject], direction: .Forward, animated: true, completion: nil)
self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.size.height - 60)
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
// Do any additional setup after loading the view.
}
func viewControllerAtIndex(index: Int) -> BoatContentViewController {
if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count)) {
return BoatContentViewController()
}
var vc: BoatContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("BoatContentViewController") as! BoatContentViewController
vc.imageFile = self.pageImages[index] as! String
vc.titleText = self.pageTitles[index]as! String
vc.pageIndex = index
return vc
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
{
var vc = viewController as! BoatContentViewController
var index = vc.pageIndex as Int
if (index == 0 || index == NSNotFound)
{
return nil
}
index--
return self.viewControllerAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
var vc = viewController as! BoatContentViewController
var index = vc.pageIndex as Int
if (index == NSNotFound) {
return nil
}
index++
if (index == self.pageTitles.count) {
return nil
}
return self.viewControllerAtIndex(index)
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
return self.pageTitles.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
App Delegierter:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
var pageControl = UIPageControl.appearance()
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
pageControl.backgroundColor = UIColor.clearColor()
return true
}
check this out http://stackoverflow.com/questions/21045630/how-to-put-the-uipagecontrol-element-on-top -of-the-sliding-pages-in-a-uipage –
Dieser war hilfreich für mich [UIPageViewController UIIage zeigt nicht den ganzen Bildschirm] (http://stackoverflow.com/questions/28732972/uipageviewcontroller-uiimage-not-showing- Vollbild) –