//------------------------------UIWindow--------------------------//

1、UIWindow:是 UIView 的子类,用于管理、协调应用中显示的窗口   它是视图中的根view

iOS 应用程序通常只有一个UIWindow,应用程序在启动时创建这个UIWindow,并往窗口中加入一或多个视图,然后将它显示出来,UIWindow的大小是根据设备的大小创建的,如果超出设备大小,那超出部分不会被显示,也不能对超的视图的事件进行操作(旋转、点击等)

(UIWindow 好比是面墙,这面墙的大小是根据这个房间的大小决定的,如果你UIWindow这面墙 超过了房间大小,你在超出房间范围的墙面 贴上你的照片,你在屋里是看不到你贴的照片的 你也不可以在屋里 把屋外墙上贴的照片 摘下来)

UIWindow主要作用:

1、他是个容器,给 view 提供展示的区域;

2、将事件(如:旋转、点击等)分发给 view

UIWindow的主要属性:

1、keyWindow :(@property(nonatomic,readonly,getter=isKeyWindow) BOOL keyWindow;) BOOL类型,只读,判断是否是当前应用的keywindow (keywindow 是指可接收到键盘输入及其他非触摸事件的UIWindow,只能有一个keywindow)2、rootViewController:UIViewController (视图控制器)类型,给UIWindow添加一个根视图控制器

//----------------------------UIView------------------------------//

1、UIView:UIView是视图,代表屏幕上的一个矩形区域。各种UI控件都属于view,不同的控件属于不同种类的视图,iOS中所有能看到的内容都是UIView或其子类。

2、创建一个视图:初始化视图并给他一个坐标,把这个视图添加到你需要显示的图层上

frame:CGRect类型 就是坐标,是在要添加的视图上的位置和自身的大小。他是一个结构体,这个结构体里面有origin起点位置(在2D中确定一个位置,可以用两个点来确定(如X轴Y轴中的(10,20))),还有size自身的大小,有起点位置了,再设置他的重点位置,就可以得到他的大小

struct CGRect {//定义了一个叫做CGRect的结构体,里面包含叫CGPoint类型的origin(X、Y起点到原点的距离)和一个叫CGSize类型的size(视图的大小)

CGPoint origin;

CGSize size;

};

typedef struct CGRect CGRect;//表示struct CGRect和CGRect是同一个东西

视图的层级关系:1、如果两个视图坐标一样 先添加的视图,会被后添加的视图覆盖住

center:CGPoint类型  相对于父视图来说的,视图在父视图坐标系统中的中心点。

bounds:指的是视图在视图本身的坐标系统中的大小(位置起点是原点(0,0,视图的宽,视图的高))。

//center的计算方法:

//    center.x = frame.origin.x - frame.size.width/2;

//    center.y = frame.origin.x - frame.size.width/2;

//-------------------------视图层次关系的调整------------------------//

在实际开发项目的时候,可能会遇到需要把某个视图  移到最底层,或者移到最上层 等操作 ,我们就用到本节课所讲的层次关系的调整

主要用到的方法:

addSubview:添加一个子视图到接收者 并让它在最上面显示出来

bringSubviewToFront:把指定的子视图移动到顶层

sendSubviewToBack:移动指定的子视图到它相邻视图的後面

removeFromSuperview:移除视图

代码实现:

//我们往同一个父视图上面添加子视图的时候, 系统会自动帮我们 记录一个index 只要添加一个子视图 就会增加1.从0开始。

//    removeFromSuperview 从父视图移除视图

//    [gview removeFromSuperview];

//    总结:子视图依赖于父视图, 如果父视图位置发生改变 子视图位置也会发生改变

//    因为frame是根据它的父视图来定义位置信息的

//    如果移除父视图  父视图上面上面的子视图也会被移除

//---------------视图中心点-------------------

//    center 中心点

//    相对于它父视图来说的,改变父视图的中心点

//    X =  宽/2;Y = 高/2;

// -------------三种种方式获取中心点------------------

//第一种:

// view.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.height/2);

//第二种:

// view.center =CGPointMake(CGRectGetWidth([UIScreen mainScreen].bounds)/2, CGRectGetHeight([UIScreen mainScreen].bounds)/2);

//第三种:

//    父视图真正的中心点

view.center = self.window.center;

IOS开发-UI基础-视图的更多相关文章

  1. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  2. IOS开发UI基础--数据刷新

    IOS开发UI基础--数据刷新 cell的数据刷新包括下面几个方面 加入数据 删除数据 更改数据 全局刷新方法(最经常使用) [self.tableView reloadData]; // 屏幕上的全 ...

  3. iOS开发-UI基础Demo

    现在更多的学习资料都是xCode4.X的,发现xCode6.1还是很多东西,如果有正在学习iOS开发的可以通过Demo简单了解下iOS的UI开发~ 1.新建单视图文件: 2.新建项目名称,语言选择OC ...

  4. iOS开发——UI基础-控制器,IBAction和IBOutlet,UIView

    第一个ios程序 @interface ViewController : UIViewController @property(nonatomic, weak)IBOutlet UILabel *la ...

  5. iOS开发——UI基础-屏幕适配

    一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在 ...

  6. IOS开发UI基础之Plis文件-字典转模型

    什么是plist文件? 在开发中直接将数据写在代码里面 不是一种合理的做法 如果数据经常改变 就需要经常翻开对应的代码进行修改 造成代码扩展性低 因此,可以考虑将经常变的数据放在⽂文件中进⾏行存储,程 ...

  7. IOS开发UI基础UIView

    主要介绍下UIView得基本概念和一些属性的介绍至于属性的用户后面会由详细的介绍 -.UIView基本概念 1.什么是控件? 屏幕上所有的UI元素都叫做控件 (也有很多书中叫做视图 组件) 比如 按钮 ...

  8. IOS开发UI基础学习-------总结

    什么叫控件? 屏幕上所有UI元素都叫做控件(也有叫做视图.组件) 控件的共同属性 尺寸 位置 背景色 ... 苹果将控件的共同属性都抽取到父类UIView中 所有控件最终都继承自UIView 父子控件 ...

  9. IOS开发UI基础UIImagePickerController的属性

    UIImagePickerController 1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType ...

随机推荐

  1. 【题解】【排列组合】【回溯】【Leetcode】Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  2. 一秒钟Win7笔记本变无线路由器

    开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器购买费.亲测通过,比conncetify方便,稳定,网速好! ...

  3. Flume NG之Interceptor简介

    转载地址:http://www.cnblogs.com/lxf20061900/p/3658172.html 有的时候希望通过Flume将读取的文件再细分存储,比如讲source的数据按照业务类型分开 ...

  4. 相对URL拼接为绝对URL的过程

    URL有两种方式:绝对的和相对的. 绝对URL中包含有访问资源的所需的全部信息 举一个例子: <HTML> <HEAD><TITLE>Joe's Tools< ...

  5. 冒泡排序(C++版)

    /** Bubble Sort * * Key * * position: where swap * * iter: sub-position in each trip * */ template & ...

  6. 12. Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  7. C++ Primer : 第十二章 : 文本查询程序

    C++ Primer书上这个例子讲的很不错,写写帮助自己理解标准库和智能指针. .h 文件内容 #include <fstream> #include <iostream> # ...

  8. Oracle字符集的查看查询和Oracle字符集的设置修改

    本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...

  9. Codeforces Round #114 (Div. 2)

    Codeforces Round #114 (Div. 2) 代码 Codeforces Round #114 (Div. 2) C. Wizards and Trolleybuses 思路 每条车的 ...

  10. poj3553 拓扑序+排序贪心

    题意:有多个任务,每个任务有需要花费的时间和最后期限,任务之间也有一些先后关系,必须先完成某个才能开始某个,对于每个任务,如果没有越期,则超时为0,否则超时为结束时间-最后期限,求总超时时间最小的任务 ...