在PC中,应用程序多是使用视窗的形式显示内容,手机应用也不例外,手机应用中要在屏幕上显示内容首先要创建一个窗口承载内容,iOS应用中使用UIWindow、UIView来实现内容显示。

UIWindow:

UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示、分发事件给View。UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。UIWindow初始化在appDeleDgate里面的 didFinishLaunchingWithOptions方法。

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];// Override point for customization after application launch.self.window.backgroundColor = [UIColor whiteColor];[self.window makeKeyAndVisible];//显示出UIWindow

UIView:

UIView类继承自UIResponder,负责在屏幕上 定义一个矩形区域,视图用于展示界面及响应用户界面交互。每个视图对象都要负责渲染视图区域的内容,并响应该区域中发生的操作事件。

除了显示内容和处理事件之外,视图可以嵌套并管理子视图。子视图是指嵌入到另一视图对象内部的视图对象,而被嵌入的视图对象是父视图。视图添加到window中就会显示出来,iOS中是怎么实现视图显示的,看下面的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];// Override point for customization after application launch.self.window.backgroundColor = [UIColor whiteColor];CGRect rect=[UIScreen mainScreen].applicationFrame;NSLog(@"NSScreen application %@",NSStringFromCGRect(rect));CGRect rect2=[UIScreen mainScreen].bounds;NSLog(@"NSString mainScreen %@",NSStringFromCGRect(rect2));NSLog(@"iOS_didFinishLaunchingWithOptions");UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(60, 50, 200, 100)];view1.backgroundColor=[UIColor greenColor];[self.window addSubview:view1];[view1 release];UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(60, 100, 200, 200) ];view2.alpha=0.5;view2.backgroundColor=[UIColor cyanColor];[self.window addSubview:view2];    UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(100, 50, 60, 50)];view3.backgroundColor=[UIColor colorWithRed:25/255.0 green:60/255.0 blue:150/255.0 alpha:1.0];    [view2 addSubview:view3];[view3 release];[view2 release];[self.window makeKeyAndVisible];return YES;
}

上面添加了三个视图,view1、view2、view3,view3嵌套在view2中。

/**
* @author 张兴业

*  http://blog.csdn.net/xyz_lmn
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/

转载于:https://www.cnblogs.com/xyzlmn/p/3168056.html

IOS学习笔记(五)——UI基础UIWindow、UIView相关推荐

  1. C#学习笔记五面向对象基础

    属性开头大写,字段开头小写 namespace 属性 { class Program { static void Main(string[] args) { person p = new person ...

  2. Java学习笔记(五):一张图总结完JVM8基础概念

    Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...

  3. iOS学习笔记-自己动手写RESideMenu

    代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...

  4. IOS学习笔记02---语言发展概述,计算机语言简介.

    IOS学习笔记02---语言发展概述,计算机语言简介. ------------------------------------------------------------------------ ...

  5. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  6. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  7. iOS学习笔记-自定义过渡动画

    代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...

  8. 【AngularJs学习笔记五】AngularJS从构建项目开始

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

  9. IOS学习笔记03---C语言概述

    IOS学习笔记03---C语言概述 0 3.C语言1-C语言概述         qq交流群:创梦技术交流群:251572072                        创梦网络赚钱群:2483 ...

  10. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

最新文章

  1. JavaWeb——jsp-config
  2. 用Python深入理解跳跃表原理及实现
  3. P1631 序列合并
  4. 内存分配函数 malloc、realloc、calloc
  5. C#如何卸载已安装的Windows Service服务
  6. 解决办法:开机后过很长时间键盘才能用
  7. python保存数组到txt_np.savetxt()——将array保存到txt文件,并保持原格式
  8. 复现bwapp逻辑漏洞-验证机制问题-一.利用Burp Suite中Intruder模块进行字典攻击
  9. 高级JAVA程序员必备:必看书籍清单
  10. iOS country code及国际区号
  11. 打开outlook显示服务器内存不足,Outlook2013无法打开邮箱,报错提示可用内存不足...
  12. 【华人学者风采】聂建云 蒙特利尔大学
  13. 微信电子驾驶证怎么查询
  14. ERNIE: Enhanced Language Representation with Informative Entities中文
  15. 大数据管理平台助力精准扶贫 “建始经验”将在全省推介
  16. 高精度除法(高精度除以高精度)
  17. Allegro自动10度走线详细教程
  18. 2021-2025年中国自动化侧面装载机行业市场供需与战略研究报告
  19. 一文弄懂printf函数从用户态到内核态的执行流程
  20. 计算机协会玩游戏策划案,计算机协会的社团策划书

热门文章

  1. 字符串压缩——C语言
  2. 输入url并按下回车的那一刻发生了什么?
  3. python安装不了怎么办_python安装运行时提示不是内部或外部命令怎么办
  4. sublime配置java编译运行环境(亲测有效)
  5. 见习经理_第一天洗了整天碗
  6. 现外供电电压都达240V,音响系统要不要加稳压器?
  7. 现在很多人都做自媒体,谈谈个人的一些想法
  8. 互联网的上半场,建立平台获取流量
  9. 各年龄段都是怎么提加薪的?
  10. 如果量子计算机成功应用,这世界上还有普通人的生存空间吗?