Ich habe gerade eine UIPageViewController
mit Seiteninhalt Ansicht Controller erstellt, die aus einzelnen ImageView
und einem Button
besteht. Es funktioniert fast fehlerlos, aber es hat ein großes Problem, wenn ich versuche, durch die Ansichten nur in der vertikalen Ansicht zu gleiten, wobei der Aspektfüllmodus für meinen ImageView
eingestellt ist (was ziemlich grundlegend dafür eingerichtet ist).Weird UIPageViewController Gleitverhalten mit Aspect Fill Bildmodus
Sie dieses Verhalten hier sehen können: https://youtu.be/2yl6UXbUGQg
Ich bin mit automatischen Layout, Knopf Einschränkungen werden auf Image (full size) ausgerichtet sind, Image Einschränkungen Super sind auf ...
Code:
1) UIPageViewController
:
class ViewController: UIPageViewController, UIPageViewControllerDataSource {
var arrPageTitle: NSArray = NSArray()
var arrPagePhoto: NSArray = NSArray()
override func viewDidLoad() {
super.viewDidLoad()
arrPageTitle = ["page 1", "page 2", "page 3"]
arrPagePhoto = ["slider-1.jpg", "slider-2.jpg", "slider-3.jpeg"]
self.dataSource = self
self.setViewControllers([getViewControllerAtIndex(0)] as [UIViewController],
direction: .Forward,
animated: false,
completion: nil)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
let pageContent: PageContentViewController = viewController as! PageContentViewController
var index = pageContent.pageIndex
if ((index==0) || (index == NSNotFound)) {
return nil
}
index -= 1
return getViewControllerAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
let pageContent: PageContentViewController = viewController as! PageContentViewController
var index = pageContent.pageIndex
if index == NSNotFound {
return nil
}
index += 1
if index == arrPageTitle.count {
return nil
}
return getViewControllerAtIndex(index)
}
func getViewControllerAtIndex(index: NSInteger) -> PageContentViewController {
let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as! PageContentViewController
pageContentViewController.strTitle = "\(arrPageTitle[index])"
pageContentViewController.strPhotoName = "\(arrPagePhoto[index])"
pageContentViewController.pageIndex = index
return pageContentViewController
}
}
2) Inhalt view-Controller, UIViewController
:
class PageContentViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var labelTitle: UIButton!
var pageIndex: Int = 0
var strTitle: String!
var strPhotoName: String!
override func viewDidLoad() {
super.viewDidLoad()
self.imageView.image = UIImage(named: self.strPhotoName)
self.labelTitle.setTitle(self.strTitle, forState: .Normal)
}
}
Vielen Dank! Du hast recht :) – jwitos