Ios Xamarin PushViewController缩放到子视图
使用Xamarin.iOS开发iPhone应用程序。 我想实现与iPhone iOS7主屏幕相同的动画,在主屏幕上放大应用程序。我在收藏视图中有一组图片。每张图片对应一个人,您可以点击该图片,进入下一个视图控制器,从中获取有关此人的信息 现在我正在从下到上制作动画-是否有可能实现我想要的动画类型Ios Xamarin PushViewController缩放到子视图,ios,ios7,xamarin.ios,xamarin,Ios,Ios7,Xamarin.ios,Xamarin,使用Xamarin.iOS开发iPhone应用程序。 我想实现与iPhone iOS7主屏幕相同的动画,在主屏幕上放大应用程序。我在收藏视图中有一组图片。每张图片对应一个人,您可以点击该图片,进入下一个视图控制器,从中获取有关此人的信息 现在我正在从下到上制作动画-是否有可能实现我想要的动画类型 public override void ItemSelected (UICollectionView collectionView, NSIndexPath indexPath)
public override void ItemSelected (UICollectionView collectionView, NSIndexPath indexPath)
{
UIStoryboard MainStoryboard = UIStoryboard.FromName ("MainStoryboard_iPhone",null);
PersonDetailViewController personDetailViewController = MainStoryboard.InstantiateViewController ("PersonDetailViewController") as PersonDetailViewController;
personDetailViewController.personID = _viewController.Category.Persons [indexPath.Row].Id;
this._viewController.NavigationController.PushViewController (personDetailViewController,false);
var animation = CABasicAnimation.FromKeyPath("transform.translation.y");
animation.Duration = 0.3f;
animation.From = NSNumber.FromFloat(this._viewController.View.Frame.Height);
animation.To = NSNumber.FromFloat(0f);
this._viewController.NavigationController.View.Layer.AddAnimation(animation, "animate");
this._viewController.NavigationController.View.Layer.AnimationForKey("animate");
}
退出缩放转换-希望您可以从Objective-C进行转换。以下是动画部分:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
[[transitionContext containerView] addSubview:toViewController.view];
toViewController.view.alpha = 0;
[UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{
fromViewController.view.transform = CGAffineTransformMakeScale(0.1, 0.1);
toViewController.view.alpha = 1;
} completion:^(BOOL finished) {
fromViewController.view.transform = CGAffineTransformIdentity;
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
}];
}
-(void)animateTransfion:(id)transitionContext
{
UIViewController*toViewController=[transitionContext ViewControllerWorky:UITransitionContextToViewControllerKey];
UIViewController*fromViewController=[transitionContext ViewControllerWorky:UITransitionContextFromViewControllerKey];
[[transitionContext containerView]添加子视图:toViewController.view];
toViewController.view.alpha=0;
[UIView animateWithDuration:[self-transitionDuration:transitionContext]动画:^{
fromViewController.view.transform=CGAffineTransformMakeScale(0.1,0.1);
toViewController.view.alpha=1;
}完成:^(布尔完成){
fromViewController.view.transform=CGAffineTransformity;
[transitionContext completeTransition:![transitionContext transitionWasCancelled];
}];
}
您可以在iOS7上使用自定义视图控制器转换。看这里: