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属性,都可以自定义编辑,都可以嵌套添加