UI --UIView 及其子类
- iOS 是 Apple 公司的移动操作系统,主要用于iPhone, iPad, iPad Mini , iPod Touch 等移动产品.
- 借助iOS 我们可以开发视频类 , 美图类 , 音乐类 , 团购类 ,电商类 ,出行类, 生活类 ,生活服务类 , 游戏类 ...应用程序
- 除此之外,ios还可以与外部设备通信,开发出更多改变生活的产品,比如:智能家居( ios App 控制电视,空调.. ) , 健身产品 ( 将人体的健康状况通过App 直观的展现出来.... )
- UI ( User Interfance ) : 用户界面,用户能看到的各种各样的页面元素 .
- iOS App = 各种各样的UI控件 + 业务逻辑 和算法 .
- 熟练掌握UI控件 .
- window 是窗口,每个app 都需要借助window 将内容展现给用户看.
- 在 iOS 中,使用UIWindow 类来表示窗口,通常一个应用程序只创建一个UIWindow 对象
- window 的主要作用是呈现内容给用户,我们不会对window 做太多操作 .
- 在创建window的时候,需要指定window的大小
- 通常window的大小( frame ) 与屏幕( UIScreen ) 大小 一致 .—>screen [skriːn] 屏幕
- 示例代码如下:
- self.window =[ [UIWindow alloc ] initWith Frame: [[UIScreen mainScreen] bounds] ] ;
- 1> command +shift +N ——>iOS 下的Application ——>Empty Application .点击Next .
- 2> 输入Product Name .点击Next .
- 3>选择项目保存路径 ,点击Create. create [kriː'eɪt] 创建
- view (视图) :代表屏幕上的一个矩形区域,ios中用UIView 来表示视图.
- PPT里看到的各种UI控件都属于view
- 不同的控件代表不同种类的view
- iOS中所有能看到的内容都是view 或其子类
- 1>开辟空间并初始化视图 ( 初始化时,给出视图位置和大小)
- 2>对视图做一些设置 ( 比如:背景颜色 )
- 3>将视图添加到window上进行显示
- 4>释放视图对象
- frame 是view的重要属性 ,是我们做图布局的关键,它决定了视图的大小和位置 .
- 根据ios坐标系 来掌控view的大小和位置 .
- 左上角为坐标系的原点 ,
- 水平向右 :为x的正方向, 屏幕最左到最右可划分320 等份
- 垂直向下:为Y的正方向 ,屏幕最上到最下可划分480等份 ( 3.5 inch 屏幕 )
- 坐标系不是以像素作为划分依据的,而是以”点" 作为依据
- center ( 中心点 ) 也是view 重要的属性
- center 是一个结构体 ,包含2个部分 : X,Y.
- center 与 frame 有着密切的联系
- center.x = frame.origin.x + frame.size.with/2 ;
- center.y = frame.origin.y +frame.size.height/2 ;
- //改变greenview的center值,那么greenview位置也会跟着改变//
[greenView setCenter:CGPointMake(100, 100)];
//或者
//greenView.center = CGPointMake(100, 100)//
- bounds (边界) 也是view 的重要属性 ,用于定义自己的边界,它同frame一样是一个CGRect 结构体变量
- 当一个view 设置 bounds 时,会把自己当成一个容器,定义自己的边界大小以及左上角的初始坐标.例如:view.bounds = CGRectMake( 0,0,100,100 ) ;
- 当子视图添加到此视图时,会根据bounds 指定的原点( 0,0 ) 计算frame,而非左上角
//3>2>设置redView的bounds 属性,将bounds.origin改为(10 ,30) 查看结果
- UIView 的 addSubview : 方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面
- UIView 提供了其他添加视图的方法.
- UIView 除了提供添加视图的方法 ,还提供了管理视图层次的方法
- UIView 作为其他UI控件的BaseClass( 基类 ) ,提供了很多属性
- UILabel (标签 ) : 是显示文本的控件,在App 中 UILabel 是出现频率最高的控件
- UILabel 是 UIView 子类 ,作为子类一般是 为了 扩充父类的功能,UILabel 扩展了文字显示的功能 ( UIView 不能显示文字 , ) UILabel 是能显示文字的视图.
- 文本: 就是我们的文字 (字符串)
- 文本显示 : 在视图上显示文字
- 文本显示都有哪些方面?—> 文本内容,文本字体
- 1> 开辟空间并初始化 ( 如果本类有初始化方法 , 使用自己的,否则使用父类的 )
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
- 2>设置文本控制相关的属性
- 3>添加到父视图上,用于显示
- 4>释放
- UIView 是所有可视化控件的基类
- UILabel 是具有特定外观,特定功能的视图 (能显示文字 )
- UILabel 侧重于文本的呈现
- APP 靠window 来呈现内容,一个呈现一般只创建一个window
- APP 中能看的到的元素,都是UIView 及其子类
- UIView 作为所有可视化控件的baseclass ,提供了许多属性和方法,能显示效果控制 (frame .alpha .. )视图添加和移除 (addSubview: .. ) ,视图层次调整 ( bringSubviewToFront: … ) .
- UILabel 属于具体的视图,有自己的侧重点
UI --UIView 及其子类的更多相关文章
- UIView及其子类
一.UI概述 UI(User Interface):用户界⾯,用户能看到的各种各样的⻚面元素. iOS App = 各种各样的UI控件 + 业务逻辑和算法 二.UIView 在手机上显示的内容都是UI ...
- UI UIView
课程内容: 一.iOS概述 2007年1月9日Macworld大会上公布iPhone OS系统,2010WWDC大会上改名为iOS 二. UI编程概述 UI的本意是用户界面,是英文User和 ...
- 关于UIView及其子类重绘drawRect
转载自:https://nezha.gitbooks.io/ios-developmentarticles/content/UIView%E7%9A%84drawRect%E9%87%8D%E7%BB ...
- IOS UIView子类UIScrollView
转自:http://www.cnblogs.com/nightwolf/p/3222597.html 虽然apple在IOS框架中提供了很多可以直接使用的UI控件,但是在实际开发当中我们通常都是要自己 ...
- UI基础UIWindow、UIView
UI基础UIWindow.UIView 在PC中,应用程序多是使用视窗的形式显示内容,手机应用也不例外,手机应用中要在屏幕上显示内容首先要创建一个窗口承载内容,iOS应用中使用UIWindow.UIV ...
- iOS开发——UI篇OC篇&UIView/UIWindow/UIScreen/CALayer
UIView/UIWindow/UIScreen/CALayer 1.UIScreen可以获取设备屏幕的大小. 1 2 3 4 5 6 7 // 整个屏幕的大小 {{0, 0}, {320, 480} ...
- UI基础视图----UIView总结
UIView是UIKit框架里面最基础的视图类,是UIResponder的子类,是UIApplication和UIViewController的兄弟类,是UIWindow,UILabel,UIImag ...
- IOS学习笔记(五)——UI基础UIWindow、UIView
在PC中,应用程序多是使用视窗的形式显示内容,手机应用也不例外,手机应用中要在屏幕上显示内容首先要创建一个窗口承载内容,iOS应用中使用UIWindow.UIView来实现内容显示. UIWindow ...
- iOS开发-UI 从入门到精通(一)
一.UI概述 (1)UI(User Interface)用户界面,用户能看到的各种各样的页面元素: (2)iOS App = 各种各样的UI控件+业务逻辑和算法: (3)想要开发出一款精美的应用程序, ...
随机推荐
- 深入了解Android中的AsyncTask
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程. 我们知道,Androi ...
- 比AutoMapper轻量快速简洁的实体映射库YeaJur.Mapper
之前在做实体深拷贝时一直使用的AutoMapper,但是总是觉得其写法比繁琐,效率也不算很高,自己写了一个轻量级的实体拷贝库YeaJur.Mapper,和AutoMapper 测试对比如下 PK项 Y ...
- Recurrent Neural Network系列3--理解RNN的BPTT算法和梯度消失
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 这是RNN教程的第三部分. 在前面的教程中,我们从头实现了一个循环 ...
- ubuntu下编译java程序
ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...
- MongoDB复制集之将现有的单节点服务器转换为复制集
服务器情况: 现有的单节点 Primary 192.168.126.9:27017 新增的节点 Secondry 192.168.126.8:27017 仲裁节点 ...
- vs调试时底部输出调试信息“无法查找或打开 PDB 文件”解决办法
用VS调试程序时,有时会在VS底部的"输出"框中提示"无法查找或打开 PDB 文件".这该怎么解决呢? 下面,我们以VS2013为例,来教大家解决办法. 工具/ ...
- Jenkins的安装与系统配置
Jenkins的安装 Jenkins的安装需要一个安装包:http://pan.baidu.com/s/1hqQBruc,也可以去Jenkins官网上下载,Jenkins的官网地址 http://Je ...
- Raspberry树莓派学习笔记1—基本介绍
树莓派的简单介绍 一个名片大小的迷你个人电脑主机,还有wifi/蓝牙... 运行完整的Linux操作系统(注意关键字:完整,不是精简过的嵌入式Linux) 开源的硬件平台.与普通主机不同的是,它带有简 ...
- &与&& C语言
&是一个位运算符,就是将两个二进制的数逐位相与,就是都是1才是1,只要有一个为0则为0,结果是相与之后的结果.&&是一个逻辑运算符,就是判断两个表达式的真假性,只有两个表达式同 ...
- 通过映射关系 动态转义为统一格式的数据 (支持 JSON 和 XML )
在很多的时候 我们都会 需要 将不同格式的数据 转换为 统一的数据格式 比如 将Json 源数据 { "b": [ { "c": "referenc ...