سؤال

أريد إضافة عرض فرعي مع الرسوم المتحركة.أنا أستخدم عرض الإضافة الفرعي لذا فهو لا يعرض أي رسوم متحركة لذا أريد إظهار أي رسوم متحركة عندما أفعل هذا...أنا أستخدم الكود أدناه:-

UIViewController *vControllerHome = [[viewTemp alloc] initWithNibName:@"viewTemp" bundle:nil];
vControllerHome.view.frame =CGRectMake(0, 0, 320, 414);
[self.view addSubview:vControllerHome.view];
self.selectedViewController = vControllerHome;

هل يمكن لأحد أن يقترح كيف أفعل هذا؟

هل كانت مفيدة؟

المحلول

إليك الرمز .. فقط جربه.

ملاحظة: استبدال myView مع اسم العرض الذي تريد استبداله.

CATransition *applicationLoadViewIn =[CATransition animation];
[applicationLoadViewIn setDuration:duration];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myView layer]addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

نصائح أخرى

هنا لكتل ​​الرسوم المتحركة

[UIView transitionWithView:containerView 
                  duration:0.5 
               options:UIViewAnimationTransitionFlipFromRight //any animation
            animations:^ { [containerView addSubview:subview]; }
            completion:nil];

ربما يمكنك الفئة الفرعية لـ UIVIEW وتجاوز طريقة willMove(toSuperview newSuperview: UIView?)

هنا مثال:

override public func willMove(toSuperview newSuperview: UIView?) {
    super.willMove(toSuperview: newSuperview)

    if let _ = newSuperview {
        // This view will be added to some view
        UIView.animate(withDuration: 0.2, delay: 0.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 30.0, options: .curveEaseInOut, animations: {
            //...
        }, completion: { (finish) in

        })
    } else {
        // This view will be removed
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top