一.iOS概述

iOS是Apple公司的移动操作系统,主要⽤用于iPhone、iPad、iPad Mini、iPod Touch等移动产品。

借助iOS,我们可以开发视频类、美图类、新闻类、⾳乐类、团购类、电商类、阅读类、出⾏行类、⽣活服务类、游戏类等应⽤用程序。

除此之外,iOS还可以与外部设备通信,开发出更多改变⽣活的产品,⽐比 如:智能家居(iOS App控制电视、空调等)、健⾝产品(将人体健康 状况通过App直观的展现出来)等。

二.UI概述

UI(User Interface):⽤户界面,⽤户能看到的各种各样的⻚面元素。

iOS App = 各种各样的UI控件 + 业务逻辑和算法。

想要开发出⼀一款精美的应⽤程序,需要熟练掌握各种UI控件的用法。

三.UIWindow

window是窗口,每个app都需要借助window将内容展现给用户看

在iOS中,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象

因为window的主要作用是呈现内容给用户,因此我们不会对window做太多操作

四.UIView

view(视图):代表屏幕上的一个矩形区域,iOS中用UIView来表示视图

不同的控件代表不同类型的view

iOS中所有能看到的内容都是view或者其子类

//@property (retain, nonatomic) UIWindow *window;//ARC默认是strong   MRC是retain
//AppDelegate.m中代码
#import "AppDelegate.h" @implementation AppDelegate
-(void)dealloc
{
[_window release];
[super dealloc];
}
- (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]; //第一步创建视图 //视图默认是透明色 clearcolor
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
//第二步,配置视图
// [redView setBackgroundColor:[UIColor redColor]];//两种设置颜色的方式
redView.backgroundColor = [UIColor redColor];
//第三步,添加视图
[self.window addSubview:redView];
// [_window addSubview:redView];//两种方式添加
//第四步,内存管理
[redView release]; [self.window makeKeyAndVisible];
return YES;
}
UI是使用 UIkit framework  框架
UIView分四类

如何呈现一个内容

可以响应触摸事件
做动画
画东西,涂鸦
创建视图的步骤如下:
 1、开辟空间并初始化视图(初始化时,给出视图位置和大小)
 2、对视图做⼀一些设置(⽐如:背景颜色)
 3、将视图添加到window上进行显示4、释放视图对象
1.ARC——>MRC
2.strong——>retain
3.dealloc
4.添加autorelease
frame
frame是view得重要属性,是我们做视图布局的关键,它决定了视图的大小和位置
ceter(中心点)
center.x = frame.x+frame.width/2;//center的x坐标
center.y = frame.y+frame.height/2//center的y坐标
bounds
bounds(边界)也是view的重要属性,用于定义自己的边界,它同frame一样是一个CGRect结构体变量
当一个view设置bounds时,会把自己当成一个容器,定义自己的边界大小以及相对坐标原点的偏移量
当子视图添加到此视图时,会根据bounds指定的原点计算frame
center发生变化bounds.origin不变   bounds.orgin发生变化,center不变
添加视图
管理视图层次
视图重要属性
五.UILabel
UILabel(标签):是显示文本的控件在App中出现频率最高
UILabel是UIView得子类       UILabel是能显示文字的视图
 
文本显示:在视图上显示文字
    UILabel *aView = [[UILabel alloc] initWithFrame:CGRectMake(, , , ];
// aView.backgroundColor = [UIColor redColor];
aView.text = @"用户名:";
[_window addSubview:aView];
[aView release];

控制文本显示

六.UITextField

UITextField(输⼊框):是控制⽂本输入和显示的控件。在App中UITextField

出现频率也比较高。

iOS系统借助虚拟键盘实现输入,当点击输入框,系统会⾃动调出键盘,⽅便 你进⼀步操作。在你不需要输入的时候,可以使⽤用收回键盘的方法,收回弹出的

键盘。 UITextField和UILabel相比,UILabel主要⽤用于文字显示,不能编辑,

UITextField允许⽤户编辑文字(输入)。

UITextField *bView = [[UITextField alloc] initWithFrame:CGRectMake(, , , )];
bView.borderStyle = UITextBorderStyleRoundedRect;//圆角边框
bView.placeholder = @"请输入您的用户名";//输入框中提示输入内容
[_window addSubview:bView];
[bView release];

文本显示

输入控制

外观控制

七.UIButton

创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。


1、创建button对象(如果本类有初始化⽅法,使⽤⾃己的;否则使⽤父类的)。


2、设置按钮显⽰相关的属性


3、为按钮添加点击事件


4、添加按钮到⽗视图上,⽤以显示


5、按钮无需释放(因为使用的是类方法创建的button)

 UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeSystem];
loginButton.frame = CGRectMake(, , , );
[loginButton setTitle:@"登录" forState:UIControlStateNormal];
[loginButton addTarget:self action:@selector(login:)
forControlEvents:UIControlEventTouchUpInside];
[containerView addSubview:loginButton];

UIButton添加事件

外观控制

UI学习笔记---第一天的更多相关文章

  1. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  2. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  3. ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探

    前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...

  4. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

  5. GIT学习笔记——第一章

    git之vim编辑器退出命令 # 学习笔记 张文军微博主页  张文军码云主页   张文军新浪云主页  张文军博客主页 ## 刚学习git,好多东西没接触过,进入vim后不知道如何出来了,网上找了很多都 ...

  6. AndroidStudio学习笔记-第一个安卓程序

    要带一个本科生做一部分跟安卓有点关系的项目,于是趁着机会学习一下编写安卓程序. 第一篇材料来自谷歌官方,传送门:https://developer.android.com/training/basic ...

  7. 《JavaScript权威指南》学习笔记 第一天。

    这是零零散散的笔记,作为自己看书打demo的笔记.不足为各位学习,留作自己复习知识点备用. 1.检测对象中某个属性存在不存在: <script> // in 运算符 //不管是对象的自有属 ...

  8. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

  9. PRML学习笔记第一章

    [转] PRML笔记 - 1.1介绍 模式识别的目标 自动从数据中发现潜在规律,以利用这些规律做后续操作,如数据分类等. 模型选择和参数调节 类似的一族规律通常可以以一种模型的形式为表达,选择合适模型 ...

随机推荐

  1. jq 判断输入数字

    jq 判断输入数字 <input   id="N_source" name="N_source"   type="text" valu ...

  2. ScrollView中嵌入ListView,GridView冲突的解决(让ListView全显示出来)

    ScrollView中嵌入原生ListView或GridView,会出现ListView,GridView显示不全的问题. 解决方法:重新构造一个ListView或GridView,重写OnMeasu ...

  3. 自定义圆的半径attr.xml

    <?xml version="1.0" encoding="utf-8"?><resources>    <declare-sty ...

  4. Linux文件管理系统

    首先了解一般linux文件系统的构成. */usr/bin./bin : 存放所有用户可以执行的命令 */usr/sbin ./sbin :存放只有root可以执行的命令 */home : 用户缺省宿 ...

  5. 获取hadoop的源码和通过eclipse关联hadoop的源码

    一.获取hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...

  6. hdu 1069

    //Accepted 264 KB 0 ms //每种block只有三种方法,且每种放法至多放一次 //规定三条边的顺序后 //把所有的block按x递增排序,x相同则按y递增排序 //然后dp // ...

  7. 三、XML编程(CRUD)

    DOM:W3C标准SAX:simple API for XMLDOM解析会把整个文档读入内存变成一个对象,会把标签变为Element对象,会把文本变成Text对象,会把属性变为Attribute对象, ...

  8. 0911 Socket网络编程

    1.实现ftp上传.下载功能 1.1 循环接收数据直到接收完毕 server端接收client发送的命令(比如说ifconfig),然后server端将命令执行结果反馈给客户端,这时候有个问题,ser ...

  9. javascript笔记3-面向对象的程序设计-创建对象

    javascript的对象:无序属性的集合,而每个属性可以包含基本值.对象或者函数.举例: var person = new Object(); person.name = "Nichola ...

  10. python3爬虫再探之EXCEL(续)

    上篇介绍了xlsxwriter的用法,本来想写一下xlrd和xlwt的用法,看到这篇文章——http://blog.csdn.net/wangkai_123456/article/details/50 ...