UI学习笔记---第一天
一.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;
}
如何呈现一个内容



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学习笔记---第一天的更多相关文章
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...
- Django学习笔记---第一天
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...
- GIT学习笔记——第一章
git之vim编辑器退出命令 # 学习笔记 张文军微博主页 张文军码云主页 张文军新浪云主页 张文军博客主页 ## 刚学习git,好多东西没接触过,进入vim后不知道如何出来了,网上找了很多都 ...
- AndroidStudio学习笔记-第一个安卓程序
要带一个本科生做一部分跟安卓有点关系的项目,于是趁着机会学习一下编写安卓程序. 第一篇材料来自谷歌官方,传送门:https://developer.android.com/training/basic ...
- 《JavaScript权威指南》学习笔记 第一天。
这是零零散散的笔记,作为自己看书打demo的笔记.不足为各位学习,留作自己复习知识点备用. 1.检测对象中某个属性存在不存在: <script> // in 运算符 //不管是对象的自有属 ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
blog.csdn.net/totogo2010/article/details/8205810 目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...
- PRML学习笔记第一章
[转] PRML笔记 - 1.1介绍 模式识别的目标 自动从数据中发现潜在规律,以利用这些规律做后续操作,如数据分类等. 模型选择和参数调节 类似的一族规律通常可以以一种模型的形式为表达,选择合适模型 ...
随机推荐
- js 数组去除空值
for(var i = 0 ;i<wordarr.length;i++) { if(wordarr[i] == "& ...
- Google十大惊人产品
国外资讯网站BusinessInsider刊文细数了谷歌惊世骇俗的十大产品,范围从无人驾驶汽车到太空电梯再到高空风力发电,每一项都令人无限神往,充满未来感. 以下是谷歌十大惊人产品: 众所周知,谷歌并 ...
- MongoDB Aggregate Methods(2) MonoDB 的 3 种聚合函数
aggregate(pipeline,options) 指定 group 的 keys, 通过操作符 $push/$addToSet/$sum 等实现简单的 reduce, 不支持函数/自定义变量 g ...
- 【转发】Linux下清除系统日志方法
摘要:相信大家都是用过Windows的人.对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然你的系统将会变得越来越大,越来越迟钝!windows怎么清理垃圾相信大家都知道的,那么li ...
- 关于SharePoint REST中的授权的研究
博客地址:http://blog.csdn.net/FoxDave 当我们开发SharePoint APP需要调用REST服务时,可以使用OAuth完成授权,也可以使用跨域库.以下是微软专家的一段注解 ...
- MongoDB error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js(转)
rror: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js 一般这种情况就是:自己指定的数据库,所以不能.自动加 ...
- ButterKnife的配置
1.打开settings选择Plugins 安装 安装完成后会提示重启AS. 2.在build.gradle文件中添加: compile 'com.jakewharton:butterknife:7. ...
- CentOS 7.0默认使用的是firewall作为防火墙。
systemctl start firewalld.service#启动firewallsystemctl stop firewalld.service#停止firewallsystemctl dis ...
- HTML--10Jquery
在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...
- 乌龟棋(noip2010)
分析:该题是经典的动态规划题目. 题目中涉及到卡片数.卡片分4类.格子数等若干信息,又每张卡片仅能使用一次.求到达终点最多能能获得多少分. 从题目中可知卡片的使用顺序影响最终得分,我们可知状态转移和使 ...