【发布时间】:2015-04-19 20:10:37
【问题描述】:
我有一个加载子视图的 UIPageViewController,我想每次在页面视图控制器上加载子视图时运行动画 到目前为止,视图加载正确,但动画不起作用 这是我的代码
内容视图类
import UIKit
class ContentPage1ViewController: UIViewController {
@IBOutlet weak var houseImage: UIImageView!
@IBOutlet weak var houseImage2: UIImageView!
override func viewDidLoad() {
println("content view loaded")//THIS WORKS
self.houseImage.alpha = 0
self.houseImage.frame = CGRectMake(0, 20, 0, 0)
UIView.animateWithDuration(1, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0, options: .CurveEaseInOut | .Repeat, animations: {
self.houseImage.alpha = 1
self.houseImage.frame = CGRectMake(0, 0, 0, 0)
}, completion: nil)
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
UIPageViewController
import UIKit
class PageViewController1: UIPageViewController,UIPageViewControllerDataSource {
var pageTitles:NSArray!
var pageViewController:UIPageViewController!
var index:Int = 1
override func viewDidLoad() {
//Storyboard id of content pages
self.pageTitles = NSArray(objects:"PAGE1","PAGE2")
self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("onboardingPageViewController") as! UIPageViewController
self.pageViewController.dataSource = self
var startVc = self.storyboard?.instantiateViewControllerWithIdentifier("contentViewController1") as! UIViewController
var viewControllers = NSArray(object: startVc)
self.pageViewController.setViewControllers(
viewControllers as NSArray as [AnyObject], direction: .Forward, animated: true, completion: nil)
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func getContentAtIndex(index:Int)->UIViewController{
return self.storyboard?.instantiateViewControllerWithIdentifier("contentViewController\(index)") as! UIViewController
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if(index == NSNotFound)
{
return nil
}
if(index == self.pageTitles.count)
{
return nil
}
index++
return getContentAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if(index == 1 || index == NSNotFound)
{
return nil
}
index--
return getContentAtIndex(index)
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
return self.pageTitles.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}
}
【问题讨论】:
-
您最终解决了问题吗?除非我转到另一个页面并返回,否则我的动画不起作用:(
标签: ios objective-c swift