2013-10-02 11:44:44 chaoyuan899 阅读数 15014
  • 移动跨平台开发一步到位

    基于.NET的移动跨平台开发教程,现在!.NET 不一样了,让你一统三国! 通过Xamarin开发套件,你将可以用 Visual Studio 及 C# 开发各移动平台 (Windows/iOS/Android) 的 App,而且执行效能一样好!让使用 .NET 技术开发企业应用者,用既有的投资及熟悉的技术进入 App 开发世界。

    13800 人正在学习 去看看 林泰宏



设置N秒后执行一个函数,最常用的是设置一个定时器,今天刚看到有这样一个函数,感觉还是比较简单实用的,就先记下来,免得忘记了。

5秒后执行pushSecondController这个函数

[self performSelector:@selector(pushSecondController) withObject:nil afterDelay:5.0f];

比如:在第一个视图出现后5秒就跳转到第二个视图,代码如下:

- (void) pushSecondController{ 
SecondViewController *secondController = [[SecondViewController alloc] initWithNibName:nil bundle:NULL]; 
[self.navigationController pushViewController:secondController animated:YES]; 
} 
- (void) viewDidAppear:(BOOL)paramAnimated{ 
[super viewDidAppear:paramAnimated]; 
[self performSelector:@selector(pushSecondController) withObject:nil afterDelay:5.0f]; 
}

5秒钟后又跳回第一个页面

- (void) goBack{ 
[self.navigationController popViewControllerAnimated:YES]; 
}
- (void) viewDidAppear:(BOOL)paramAnimated{ 
[super viewDidAppear:paramAnimated]; 
[self performSelector:@selector(goBack) withObject:nil afterDelay:5.0f]; 
}

2015-08-01 19:16:21 hyk_628 阅读数 221
  • 移动跨平台开发一步到位

    基于.NET的移动跨平台开发教程,现在!.NET 不一样了,让你一统三国! 通过Xamarin开发套件,你将可以用 Visual Studio 及 C# 开发各移动平台 (Windows/iOS/Android) 的 App,而且执行效能一样好!让使用 .NET 技术开发企业应用者,用既有的投资及熟悉的技术进入 App 开发世界。

    13800 人正在学习 去看看 林泰宏

一、ios程序执行顺序:


     int main(int argc, char * argv[]) {
       @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
         }
   }


      main.m 是程序的入口

      首先,在main程序中:调用了一个UIApplicationMain()函数,创建应用程序对象。

     1. 创建了一个UIApplication对象。

     2. 制定了一个UIApplication的代理委托

     应用程序的委托:监控程序的启动和进入后台,还有从后台进入前台

     那代理委托是谁呢 ?

     就是AppDelegate 程序创建的时候,我们程序里有一个类就是AppDelegate 类

     3. 开启一个时间循环。(一直监听你屏幕上的事件的发生)

     4. NSLog(@”%s,%d”, __FUNCTION__, __LINE__);打印这个函数名,和这个方法在第多少行上。


二、程序运行时候 方法的执行顺序是:

    1.application: didFinishLunchingWithOptions

    2.applicationDidBecomeActive(应用程序变为活动状态)

    当按下Home键之后:(程序将要取消活动状态)

   1.applicationWillResignActive

   2.applicationDidEnterBackground

   当在后台的程序,点击进入前台的时候触发方法:

   1. applicationWillEnterForeground

   2. applicationDidBecomeActive

   applicationWillTerminate(程序退出调用方法)

 

三、ViewController 这个类是视图控制器

    从alloc和init创建初始化开始

    在这个类里,先调用loadView方法,然后调用viewDidLoad方法,如果没有重写loadView直接调用父类的loadView(如果里面什么也不写)就陷入了死循环。

    视图将要出现的方法:viewWillAppear

    视图已经出现的方法: viewDidAppear

    视图将要消失: viewWillDisappear

    视图已经消失: viewDidDisappear

    视图销毁:dealloc

    视图控制器是一个幕后的双手,控制视图的展示,特别是多个视图控制器实现跳转的时候,用到视图控制器的viewWillAppear 等一些方法。




2016-05-11 21:35:45 hero_wqb 阅读数 598
  • 移动跨平台开发一步到位

    基于.NET的移动跨平台开发教程,现在!.NET 不一样了,让你一统三国! 通过Xamarin开发套件,你将可以用 Visual Studio 及 C# 开发各移动平台 (Windows/iOS/Android) 的 App,而且执行效能一样好!让使用 .NET 技术开发企业应用者,用既有的投资及熟悉的技术进入 App 开发世界。

    13800 人正在学习 去看看 林泰宏

列举iOS开发中,几种延迟执行的方法:

1. GCD方法:(可设置在主线程还是子线程执行)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//do something...
});
2. performSelector方法:(必须在主线程)

[self performSelector:@selector(method) withObject:nil afterDelay:1.0f];

3. sleep方法:(主线程、子线程均可,阻塞式执行方式)

[NSThread sleepForTimeInterval:1.0f];
//do something...

4. 定时器,NSTimer方法:(必须在主线程)

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(method) userInfo:nil repeats:NO];



2016-03-24 11:06:51 shan1991fei 阅读数 902
  • 移动跨平台开发一步到位

    基于.NET的移动跨平台开发教程,现在!.NET 不一样了,让你一统三国! 通过Xamarin开发套件,你将可以用 Visual Studio 及 C# 开发各移动平台 (Windows/iOS/Android) 的 App,而且执行效能一样好!让使用 .NET 技术开发企业应用者,用既有的投资及熟悉的技术进入 App 开发世界。

    13800 人正在学习 去看看 林泰宏

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行某方法。

- (void)doSomething{ NSLog(@"doSomething"); }

1.performSelector方法

[self performSelector:@selector(doSomething) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。

2.定时器:NSTimer

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(doSomething) userInfo:nil repeats:NO];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。

3. sleep方式

[NSThread sleepForTimeInterval:1.0f]; [self doSomething];

此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建议放到子线程中,以免卡住界面
没有找到取消执行的方法。

4.GCD方式

double delayInSeconds = 1.0; 
 __block ViewController* bself = self; 
 dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
 [self doSomething]; });

此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。

ios 重复执行方法

阅读数 3391

IOS 动画不执行了

阅读数 1445

没有更多推荐了,返回首页