UIKit开发 程序入口也是从main函数
然后调用UIApplicationMain转入UI应用开发
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
// 内存自动释放池
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
[pool release];
return retVal;
}
注:
1. NSAutoreleasePool 是内存自动释放池,帮你管理内存释放的
2. 上面的程序从UIApplicationMain会调转到实现了UIApplicationDelegate接口的 AppDelegate类中
实现了UIApplicationDelegate接口的类 这个算是UI应用的框架了,从这里开始这里结束,而我们先记得从下面这个方法开始就行了
- (BOOL) application:(UIApplication *) application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//当应用程序已经启动,并可能有额外的启动选项来处理委托
//强烈建议您使用此方法来初始化你的应用程序,其他的方法据说不是亲生的
(下面从网络上复制下来的方法说明根据需要自己选择 参考)
1. - (void)applicationWillResignActive:(UIApplication *)application{ //从主动到非活动状态的应用程序时发送。这可导致产生某些类型的临时中断(如传入电话呼叫或SMS消息) ,或者当用户退出应用程序,它开始过渡到的背景状态。 //使用此方法暂停正在进行的任务,禁用定时器,踩下油门, OpenGL ES的帧速率。游戏应该使用这种方法来暂停游戏。 } 2. - (void)applicationDidBecomeActive:(UIApplication *)application 说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反 3. - (void)applicationDidEnterBackground:(UIApplication *)application{ 说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可 //使用这个方法来释放共享资源,保存用户数据,废止定时器,并存储足够的应用程序状态信息的情况下被终止后,将应用程序恢复到目前的状态。 //如果你的应用程序支持后台运行,这种方法被调用,而不是applicationWillTerminate :当用户退出。 } 4. - (void)applicationWillEnterForeground:(UIApplication *)application 说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。 5. - (void)applicationWillTerminate:(UIApplication *)application //不支持多任务的时候调用 说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值(自动设置)。 6. - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止 7. - (void)applicationSignificantTimeChange:(UIApplication*)application 说明:当系统时间发生改变时执行 8. - (void)applicationDidFinishLaunching:(UIApplication*)application 说明:当程序载入后执行 9. - (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame 说明:当StatusBar框将要变化时执行 10. - (void)application:(UIApplication*)application willChangeStatusBarOrientation: (UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration 说明:当StatusBar框方向将要变化时执行 11. - (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url 说明:当通过url执行 12. - (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation 说明:当StatusBar框方向变化完成后执行 13. - (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame 说明:当StatusBar框变化完成后执行
下面我们就要开始进入UI界面编辑了
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 创建一个window
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 创建一个view 添加到Window中
MainView * view = [[MainView alloc]initWithFrame:self.window.bounds];
[self.window addSubview:view];
// 让window可见,并显示出来
[self.window makeKeyAndVisible];
return YES;
}
这样我们就创建了一个window 并把我们创建的UIView视图添加了进去并显示了出来
至于UIView视图,我现在只知道 他是个视图,我可以随意自定义编辑,可以嵌套添加子视图, 而ios中的所有的控件都带有UIView属性,都可以自定义编辑,都可以嵌套添加
本文介绍了UIKit开发中的程序入口实现方式,从main函数开始,通过UIApplicationMain转入UI应用开发。详细解释了UIApplicationDelegate接口的重要方法,包括应用程序启动、内存管理、状态变更等关键场景,并展示了如何创建并显示一个简单的UI窗口。
1270

被折叠的 条评论
为什么被折叠?



