前节:app是什么?
app英文全称:application 应用程序,简称应用。也就是手机应用的简写
出处:http://www.cnblogs.com/mcj-coding/p/5098254.html QQ:853740091
1.UI
UI即User Interface(用户界面)的简称。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。UI还有其它的意义,如Unit Interval,Univ of Iowa,Unlock Instruction,Urgent Interrupt。在iOS中UI指的就是用户界面
1.1 UI举例
UI 字面上看是用户和界面,还包括用户和界面之间的交流。如果游戏机是我的程序,那么操作按键就是UI。我们睁开眼看到的世界就是世界给我们展示的UI
1.2 UI的重要性
用户对程序的第一感觉就是UI感觉(男女见面的第一印象,还是比较重要的)。用户再使用过程中,和程序交流主要是通过UI,如果UI展示不清楚,交互比较别扭,会直接影响用户的体验。而用户体验是一个app成败的关键元素之一
1.3 UI设计
UI 设计需要专业的培训,这里就不说了,一般公司有自己UI设计师
2. 创建UI的工具就是---Xcode的使用
2.1 打开Xcode
/// 添加图片
Get started with a playground(可视化编程)
Create a new Xcode project (创建一个新项目)
Check out an Existing project (打开一个存在的项目)
2.2 选择Create a new Xcode project (创建一个新项目)
/// 添加图片
五个其中四个是模板(高考作文模板,虽然快速但是缺乏新意,一般自己编写,可以任意添加自己喜欢的东西,删除自己不喜欢的)
选择SingleView Application这个模板 --点击 next
2.3 添加项目名称和项目的详情信息
/// 添加图片
product Name :项目名称(理论支持中文,用后会出问题,图片加载不出来等)
Oranization Name:开发者的名称(会在每个.h 和 .m文件中显示出来(演示))
Oranization Identifiter :app企业标识(公司网址倒写 com.baidu.www(网址唯一))
bundle Identifiter :Oranization Identifiter + product Name; 开发证书标识,要和开发证书名字一致
use core Data : 会自动生成数据管理相关代码
我们当前只需要添加一个项目名称就行---点击 next (这样我们项目就创建完成了)
3. Xcode 面板介绍
【导航区域】
项目导航(快速的找到文件和类)
符号导航 (快速的找到类的方法、属性)
搜索导航(输入一个字符,项目只要含有这个字符的的都会显示出来)
问题导航 (程序有警告和错误时,就有在这显示)
单元测试导航
调试导航/线程导航 (导航面板统一显示应用程序调试状态在或者出错情况下堆栈的调试状态,CPU的使用情况,以及相关的网络和内存信息)
断点导航 (快速编译、禁用、删除断点)
日志导航 (编译调试日志和源代码变更日志)
快捷键 Command +1、2………..
【编辑区域】
【通用区域】
查看区/属性区 (用到时再说)
库区域
文件库
代码片段库
对象库
媒体库
【调试区域】 (一直再用,不用说)
3. 程序启动-生命周期
首先讲解UIApplication对象
UIApplication对象会不断的检测应用程序的当前状态。当系统修改了应用程序的当前状态,会发送通知,UIApplication对象就会检测到这个通知。
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
int argc, char * argv[] 这两个参数包含应用程序何时启动等信息(系统传入的参数)
@autoreleasepool 缓存池,对象引用计数自动处理器 新生成一个Run Loop的时候,系统会自动的创建一个NSAutoreleasePool,该NSAutoreleasePool无法被删除
第三个参数:主要是检测程序的状态(指的是系统改变了程序的当前状态)的改变。必须传入UIApplication子类,如果传入nil系统会自动创建一个UIApplication对象
第四个参数:app程序的代理。第三个参数检测到程序状态的改变,就会通知代理。。然后我们在相应的方法中处理事情。
// AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
// 坐标系
如果在平面坐标系中我们要确定一个东西的位置和大小需要什么?
左上角是(0,0) 横着的为Y轴,竖着的为X轴 (power point 展示)
// UILabel
展示一下UILabel的使用环境
UILabel 是一个视图类,即UIView的子类,在IOS中所有看的见,摸的着的,都是UIView的子类
----看图片 让大家看整体的架构
UILabel 是标签视图,用于显示文字信息。
创建一个关于UILabel项目,关闭ARC build Setting - gar (学了就要用,以后我们做项目就可以打开)
去掉arc 需要在AppDelegate中添加这段代码
- (void)dealloc
{
[self.window release];
[super dealloc];
}
UIWindow 我们的UI都要放在这上边
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
label.backgroundColor = [UIColor redColor];
label.text = @"优衣库";
[self.window addSubview:label];
[label release];
// 视图控制器
Application windows are expected to have a root view controller at the end of application launch提醒的错误的意思:我们画框完成了,但是没有画布。也就是我们直接把画画到画框上了。如果我们把画画到画框上,那么如果我们想切换一个界面,只能换框了。一般一个app只有一个UIWindow,所以我们只能换app了,可能嘛!!!
视图控制器就是画布。
重新创建一个项目:添加一个ViewController
UILabel的一些使用方法(使用基本的一些属性)
作业:蓝底白字:尊上,我是小骨~~;
UILabel 的其他属性的一些用法。
- (void)viewDidLoad {
[super viewDidLoad];
//位置、文字颜色、lable背景色、字体大小、字体加粗、字体倾斜、文字位置、阴影、文字行数、文字分行、自适应行数
// 实例化
UILabel *label = [[UILabel alloc] init];
// 大小位置
label.frame = CGRectMake(10,100,150,150);
// 设置显示文字
label.text = @"See You Again I belivece you,double kill";
// 设置文字颜色 (还有另一种设置颜色的方式,经常用的0~1 透明度)
label.textColor = [UIColor blackColor];
// 设置UILable的背景色 [UIColor clearColor];
label.backgroundColor = [UIColor grayColor];
// 设置字体大小
label.font = [UIFont systemFontOfSize:20.f];
// 设置字体样式:粗体
label.font = [UIFont boldSystemFontOfSize:30];
// 设置字体样式 (英语,汉语不明显)
NSLog(@"%@",[UIFont familyNames]);
label.font = [UIFont fontWithName:@"" size:20]
// 设置文字位置(有三种情况)
// NSTextAlignmentLeft
// NSTextAlignmentCenter
// NSTextAlignmentRight
label.textAlignment = NSTextAlignmentCenter
;
// 设置行数
label.numberOfLines = 2;
// 设置高亮(以后点击后用户要有相应)
label.highlighted = YES;
label.highlightedTextColor = [UIColor redColor];
// 设置阴影
label.shadowOffset = CGSizeMake(0, 0);
label.shadowColor = [UIColor yellowColor];
// 设置标记(标记理应是正数)
label.tag = 1;
// 设置文字过长时显示格式
// NSLineBreakByWordWrapping = 0, 以单词结尾、换行,如果显示不下,舍去
// NSLineBreakByCharWrapping, 以字母换行,如果显示不下,舍去(ios7不支持)
// NSLineBreakByClipping, 以单词换行,如果显示不下,以字符作为舍去的基本单位
// NSLineBreakByTruncatingHead, 以单词换行,如果显示不下,省略最后一行的行首。
// NSLineBreakByTruncatingTail, 以单词换行,如果显示不下,省略最后一行的行尾。
// NSLineBreakByTruncatingMiddle 截去中间
label.lineBreakMode = NSLineBreakByWordWrapping;
// 文字大小自动适应宽度 (和文字显示的格式有冲突,只能设置其中之一)
label.adjustsFontSizeToFitWidth = YES;
// 添加到视图控制器
[self.view addSubview:label];
[label release];
}