相关疑难解决方法(0)

如何在UIViewController中使用applicationDidBecomeActive?

我想在应用程序变为活动状态或成为前台时在UIViewController中重新加载数据.

我知道在AppDelegate类中调用了applicationDidBecomeActive.
但我必须有一个UIViewController的全局变量来重新加载AppDelegate类中的数据,就像这段代码一样:

in AppDelegate.m

// global variable
UIViewController *viewController1;
UIViewController *viewController2;

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    [viewController1 reloadData];
    [viewController2 reloadData];
}
Run Code Online (Sandbox Code Playgroud)

但是,当我有很多UIViewControllers时,它很不方便.

我可以在UIViewController而不是AppDelegate类中使用applicationDidBecomeActive吗?
或者有比UIViewController的全局变量更好的方法吗?

我还需要使用UIViewControllers中的以下方法:

-(void)applicationWillResignActive:(UIApplication *)application
-(void)applicationDidEnterBackground:(UIApplication *)application
-(void)applicationWillEnterForeground:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios

62
推荐指数
3
解决办法
6万
查看次数

当应用程序到达前台时,如何重新启动基于块的动画?

我有以下基于块的动画:

[UIView animateWithDuration:0.5f delay:0.0f 
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionCurveEaseInOut
                    animations:^{
                [view.layer setTransform:CATransform3DMakeScale(1.3f, 1.3f, 1.0f)];
                NSLog(@"animating");
                    }completion:^(BOOL finished){
                        NSLog(@"Completed");
                    }];
Run Code Online (Sandbox Code Playgroud)

当应用程序从后台返回时,将调用完成块,并且我的动画不会重新启动.我尝试使用以下委托方法重新启动动画:

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    /*
     Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
     */
    [[self viewController] animate];
    ......
}
Run Code Online (Sandbox Code Playgroud)

但这并没有恢复动画.

同样,我尝试了这些问题的答案中列出的方法:

但那里没有任何建议对我有用.当应用程序从后台返回时,是否有另一种方法可以恢复基于块的UIView动画?

cocoa-touch core-animation uiview ios

6
推荐指数
1
解决办法
4762
查看次数

UIView动画的问题

我正在观看动画.但我面临的问题很少.我必须按钮startAnimationStop Animation.为了在我的imageview上执行动画,我在startAnimation按钮的动作中使用以下代码:

 UIViewAnimationOptions option = UIViewAnimationOptionRepeat + UIViewAnimationOptionAutoreverse;
[UIView animateWithDuration:2.5 delay:0.0 options:option
                 animations:^{
                     CGAffineTransform scale = CGAffineTransformMakeScale(2.0, 2.0);
                     CGAffineTransform translate = CGAffineTransformMakeTranslation(-50.0, -100.0);
                     CGAffineTransform mix = CGAffineTransformConcat(scale, translate);
                     imv.transform = mix; 
                 } 
                 completion:^(BOOL finished) {

                 }
 ];
Run Code Online (Sandbox Code Playgroud)

这很有效.现在我遇到的问题是:

  1. 如何在我的stopAnimation按钮的动作上停止这个动画?
  2. 如果ImageView是动画,我之后进入后台我再次进入前景ImageView会在那里粘贴并且不会动画.

如何解决这些问题?

iphone core-graphics cgaffinetransform uiviewanimation ios

2
推荐指数
1
解决办法
2038
查看次数