iOS 开发~UIWindow
比如下面例子:
写出第一个iOS的程序,在界面上显示“Hello World”
1.如何新建一个工程
iOS—>Single View Application—>工程名、保存位置
2.运行App
点击三角符号或使用快捷键(Command + R)
快捷键:Command+B 只是编译,不是运行
3.工程的文件组成
4.应用程序是如何运行起来的?
1)main方法
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
UIApplicationMain()全局函数,一共做了三件事:
a)根据第三个参数创建应用程序类的实例(nil默认UIApplication 系统默认)
b)根据第四个参数创建应用程序代理类的实例
(Application Delegate代理 自己任意创建的类,遵守了协议才可以成为代理类)
c)启动事件循环
d)在代理类的didFinishLaunchingWithOptions:方法中编写启动程序后的界面创建及显示
5.UIWindow
1)是什么
是界面显示的根本对象,要想出现显示的内容,那么一定是先创建window的实例
2)作用是什么?
是界面要显示的内容的父容器,在window的上面添加其他显示的内容
6.frame
1)是什么
是CGRect类型的结构体
2)描述了控件在父容器中的位置和大小
CGRect{
CGPoint origin,
CGSize size
}
CGPoint{
CGFloat x,
CGFloat y
}
CGSize{
CGFloat width,
CGFloat height
}
3)如何创建结构体的变量?
使用全局函数 xxxMake();
CGRect —> CGRectMake(x,y,width,height)
CGPoint -> CGPointMake(x,y);
CGSize -> CGSizeMake(width,height);
例:
AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//应用程序启动后,第一个要执行动作的时机点,可以做第一个要出现的界面的设置
//1.创建window的实例 //读屏幕的大小
self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//2.设置window的背景色
self.window.backgroundColor=[UIColor yellowColor];
//3.创建并添加显示文本信息的标签
UILabel *label = [[UILabel alloc]init];
label.frame = CGRectMake(100, 150, 200, 40);
label.text = @"Hello World";
[self.window addSubview:label];//子试图添加到界面
// 4 设置根控制器
self.window.rootViewController=[ViewController new];
// 5.设置窗口可见(显示)
[self.window makeKeyAndVisible];
return YES;
}
效果如下: 
iOS 开发~UIWindow的更多相关文章
- iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍
UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...
- iOS开发UI篇—UIWindow简单介绍
iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...
- iOS开发系列--通知与消息机制
概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...
- 【IOS开发笔记03-视图相关】简单计算器的实现
UIView 经过前几天的快速学习,我们初步了解的IOS开发的一些知识,中间因为拉的太急,忽略了很多基础知识点,这些知识点单独拿出来学习太过枯燥,我们在今后的项目中再逐步补齐,今天我们来学习APP视图 ...
- 【IOS开发笔记02】学生管理系统
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- iOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- ios开发中的小技巧
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...
- iOS开发系列--IOS程序开发概览
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发系列--视图切换
概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController ...
随机推荐
- ORACLE SQL单行函数(一)【weber出品必属精品】
1.SUBSTR:求父串中的子串 SUBSTR('HelloWorld',1,5) 1:代表子串的起始位置,如果为正,正数,如果为负,倒数 5:代表字串的终止位置,只能向右数,可以省略,如果省略就是数 ...
- hdu 2438
Problem Description Mr. West bought a new car! So he is travelling around the city. One day he comes ...
- C++中使用stringstream简化类型转换
C++标准库中的<sstream>提供了一个stringstream,以前基本没用过,突然发现很好用(^-^)V 参见 http://www.cplusplus.com/reference ...
- 搭建hbase-0.94.26集群环境
先安装hadoop1.2.1,见http://blog.csdn.net/jediael_lu/article/details/38926477 1.配置hbase-site.xml <prop ...
- Git / Bower Errors: Exit Code # 128 & Failed connect
今天第一次使用bower来安装插件,上来就报了这个错. 然后在google上查找,很多人都有做出回答,让执行如下 git config --global url.https://github.com/ ...
- File类详解
一.File类: File类时io包中唯一代表磁盘文件本身的对象.File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建.删除.重命名文件等. File类的对象主要用 ...
- requestAnimationFrame动画方法
一.动画方式 在HTML5/CSS3时代,实现动画的方式有许多种: 你可以用css3的animation和@keyframes: 可以用css3的transition: 还可以用原始的setTimeo ...
- oracle ed命令
今天在弄oracle sqlplus的时候需要写一个存储过程,用ed进入之后,退不出来了. 从网上找到下面的方法处理: 如何退出sqlplus ed操作 今天进入sqlplus ,执行完语句后 ...
- Android AsyncTask 异步任务操作
1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi ...
- poj3294 --Life Forms
Life Forms Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 12483 Accepted: 3501 Descr ...