`
CrackRen
  • 浏览: 168163 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

UIKit 开发学习记录(一)

 
阅读更多

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics