IOS开发-UI基础-视图
//------------------------------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基础-视图的更多相关文章
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- IOS开发UI基础--数据刷新
IOS开发UI基础--数据刷新 cell的数据刷新包括下面几个方面 加入数据 删除数据 更改数据 全局刷新方法(最经常使用) [self.tableView reloadData]; // 屏幕上的全 ...
- iOS开发-UI基础Demo
现在更多的学习资料都是xCode4.X的,发现xCode6.1还是很多东西,如果有正在学习iOS开发的可以通过Demo简单了解下iOS的UI开发~ 1.新建单视图文件: 2.新建项目名称,语言选择OC ...
- iOS开发——UI基础-控制器,IBAction和IBOutlet,UIView
第一个ios程序 @interface ViewController : UIViewController @property(nonatomic, weak)IBOutlet UILabel *la ...
- iOS开发——UI基础-屏幕适配
一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在 ...
- IOS开发UI基础之Plis文件-字典转模型
什么是plist文件? 在开发中直接将数据写在代码里面 不是一种合理的做法 如果数据经常改变 就需要经常翻开对应的代码进行修改 造成代码扩展性低 因此,可以考虑将经常变的数据放在⽂文件中进⾏行存储,程 ...
- IOS开发UI基础UIView
主要介绍下UIView得基本概念和一些属性的介绍至于属性的用户后面会由详细的介绍 -.UIView基本概念 1.什么是控件? 屏幕上所有的UI元素都叫做控件 (也有很多书中叫做视图 组件) 比如 按钮 ...
- IOS开发UI基础学习-------总结
什么叫控件? 屏幕上所有UI元素都叫做控件(也有叫做视图.组件) 控件的共同属性 尺寸 位置 背景色 ... 苹果将控件的共同属性都抽取到父类UIView中 所有控件最终都继承自UIView 父子控件 ...
- IOS开发UI基础UIImagePickerController的属性
UIImagePickerController 1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType ...
随机推荐
- LeetCode Search a 2D Matrix(二分查找)
题意: 有一个矩阵,每行都有序,每行接在上一行尾后仍然有序.在此矩阵中查找是否存在某个数target. 思路: 这相当于用一个指针连续扫二维数组一样,一直p++就能到最后一个元素了.由于用vector ...
- css 包含的图片和style="display:none"可以避免图片加载,可以节省网络流量
从别人那儿学到一招:先记录下来: <head> <meta charset="UTF-8"> <title>Document</title ...
- ui学习笔记---第十五天数据库
数据库的使用 常见的数据库有MySQL SQL Server SQLite Oralce等 在iOS开发中通常使用SQLite数据库,这是一个轻量级的数据库,可以在火 ...
- rsync 使用示例
导读 Rsync(remote sync) 是用于同步某一位置文件和目录到另一位置的有效方法.备份的位置可以在本地服务器或远程服务器.本站之前亦有介绍rsync的安装配置和教程,详看<rsync ...
- SAP保存操作记录CDHDR和CDPOS表
http://blog.sina.com.cn/s/blog_7dce1fac01014yp2.html转自sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用 ...
- ZOJ 1007 Numerical Summation of a Series
原题链接 题目大意:x的取值从0.000到2.000,输出每个x对应的y(x)的值 解法:参考了这篇日志http://www.cnblogs.com/godhand/archive/2010/04/2 ...
- CSS Flex弹性布局
关于css3的flex布局,阮一峰老师的文章写的清晰易懂又全面,这里附上链接http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_s ...
- leetcode 126. Word Ladder II ----- java
Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformat ...
- [JSOI2008] 完美的对称
题目描述 在峰会期间,必须使用许多保镖保卫参加会议的各国代表.代表们除了由他自己的随身保镖保护外,组委会还指派了一些其他的特工和阻击手保护他们.为了使他们的工作卓有成效,使被保卫的人的安全尽可能得到保 ...
- objective-c new关键字
xxx *a = [xxx new] 等价于 xxx *a = [[xxx alloc]init] ,但如果类的构造函数带参数就不能使用new了. 练习了下<Objective-C 基础教程&g ...