Amacım, kullanıcılara, uygulamalar başlatılırken sıçrama tahtası simgeleriyle benzer bir görünümden yakınlaştırma yapmak için yakınlaştırma modal geçişi sağlamaktır.Gezinme çubuğu, completeTransition çağrıldıktan sonra ayarlandı: özel geçişte
Sunulan görüntü denetleyicisi doğru şekilde yakınlaştırır, ancak gezinme çubuğunun durum çubuğunun altında yanlış konumu vardır. [PositionContext completeTransition: finished]; 'den sonra bu konum düzeltilir. Geçişin başlangıcından bunu nasıl doğru yapabilirim?
Bu
hata bir ekran kaydıdır: http://youtu.be/7LKU4lzb-uw (aksaklık kaydın 6 saniyede bir)UIViewControllerAnimatedTransitioning kodu:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *container = [transitionContext containerView];
CGPoint viewCenter = self.view.center;
CGSize viewSize = self.view.frame.size;
CGSize controllerSize = toViewController.view.frame.size;
CGFloat controllerFromX = viewCenter.x - (controllerSize.width/2);
CGFloat controllerFromY = viewCenter.y - (controllerSize.height/2);
CGAffineTransform transform = CGAffineTransformMakeTranslation(controllerFromX, controllerFromY);
transform = CGAffineTransformScale(transform, viewSize.width/controllerSize.width, viewSize.height/controllerSize.height);
if (self.reverse) {
[container insertSubview:toViewController.view belowSubview:fromViewController.view];
} else {
toViewController.view.transform = transform;
[container addSubview:toViewController.view];
}
[UIView animateKeyframesWithDuration:ZoomTransitioningDuration
delay:0
options:0
animations:^{
if (self.reverse) {
fromViewController.view.alpha = 0.0f;
fromViewController.view.transform = transform;
} else {
toViewController.view.transform = CGAffineTransformIdentity;
}
}
completion:^(BOOL finished) {
[transitionContext completeTransition:finished];
}];
}
İlgili görünümün y kökenini ayarlayamıyor musunuz? –
Bunu yaptığımda, durum çubuğunun altındaki alan yeşil değil, yeşil (tüm denetleyici aşağıya doğru kaydırılır). –
self.view nereden geliyor? Sunum görüntüleme denetleyicisi de animasyon denetleyicisi mi? – bilobatum