GeekBand~iOS~实战入门~第一周

1.导论

社区

-> Apple 官方资源
-->Mac App Store
-->Xcode
-->iOS Dev Center
-->http://developer.apple.com
->第三方
-->stackoverflow
-->ourcoders / cocoachina / v2ex
-->github

2.Hello iOS

创建工程

->Organization Identifier。组织标识。一般情况下,输入的是公司或组织的域名。
->Bundle Identifier。捆绑标识符。由Product Name+Organization Identifier构成。因为在App Store上发布应用使用,命名不能重复。

App基本概念

->iOS App的代码结构

GeekBand~iOS~实战入门~第一周_第1张图片
Hello World项目导航视图.png

-->main()
-->UIApplicationMain()
-->UIApplication对象
-->UIApplicationDelegate
AppDelegate继承UIResponder类,实现了UIApplicationDelegate委托协议。
ViewController类继承UIViewController类,是视图控制器类,在工程中是根视图和用户事件控制类。
启动HelloWorld,调用application:didFinishLaunchingWithOptions:方法。


GeekBand~iOS~实战入门~第一周_第2张图片
启动Hello World.png

->iOS App 的运行环境
-->Sandbox
--> 运行期目录结构
-NSHomeDirectory()

Bundle

关于Bundle,摘自网络博客:
iOS开发里的Bundle是个啥玩意?!
http://www.cnblogs.com/BigPolarBear/archive/2012/03/28/2421802.html
->iOS 应用是一个 Bundle
-->Bundle: 带有Info.plist 的目录
摘自网络博客:
IOS开发NSBundle对象使用详解
http://blog.csdn.net/guozh/article/details/8823674
-->NSBundle 类
-->mainBundle
-->resource bundle 和 framework

3.Button

界面与代码分离

->可以只用代码来描绘界面及响应用户操作
->但,不直观,调整麻烦
->iOS的解决方案:
-->用Interface Builder 画界面 保存到xib(xml版的nib)文件
-->用代码更新界面、响应用户操作 保存在.m文件里

Outlet

->为了让代码能引用nib中的对象
-->需要代码里有一个变量来引用界面对象
-->在界面对象创建后,给这个变量赋值
-->这个过程最好能自动完成
->Outlet
-->IBOutlet标记的变量
->Connection

Outlet Connection

->
->存在xib里的是界面模板
->运行时,类实例的代码会触发界面实例化
-->最终调用[UINib instantiateWithOwner:options];
->根据模板实例化其中的对象
->[owner -setValue:uiObj forKey:outlet.property];

Action Connection

->界面事件
-->Interface Builder,Connection Inspector
->响应代码
-->IBAction 标记的方法
->关联:界面对象.事件 => 类实例.方法

UIButton 样式

->类型
-->Custom。自定义类型。
-->System。系统默认属性,该按钮没有边框。
-->Detail Disclosure。细节展示按钮,用于表视图中的细节展示。
-->Info Light和Info Dark。信息按钮。表示有一些信息需要显示,或者有可以设置的内容。
-->Add Contact。添加联系人按钮。
->状态
-->Normal。默认。
-->Highlighted。高亮。
-->Selected。选择。
-->Disabled。不可用。
->文字与图片Font Image
->背景Background

代码创建 UIButton

->创建
-->UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
->定制
-->[btn setBackgroundImage:[UIImage imageNamed:@"okbtn"] forState:UIControlStateNormal];
-->[btn setTitle:@"OK" forState:UIControlStateNormal];
-->[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
->添加响应
-->[btn addTarget:self action:@selector(greeting:) forControlEvents:UIControlEventTouchUpInside];
- event mask:UIControlEventTouchUpInside | UIControlEventTouchUpOutside

4.Image

管理项目里的图片 Assert Catalog
GeekBand~iOS~实战入门~第一周_第3张图片
Assets.png
UIImageView

->用 UIImageView 显示图片
-->.image 属性
-->在IB里选图片意味着
1.图片打包在 mainBundle 里
2.系统自动缓存

UIImage对象

->加载 App bundle 里的图片
image = [UIImage imageNamed:@"picOne"]; image = [UIImage imageNamed:@"picOne" inBundle:nil compatibleWithTraitCollection:nil]; NSURL * url = [[NSBundle mainBundle] URLForResource:@"picOne" withExtension:@"png"]; UIImage * image = [UIImage imageWithContentsOfFile:url.path];
->加载文件里的图片
UIImage * image = [UIImage imageWithContentsOfFile:path]; UIImage * image = [UIImage imageWithData:data];

GeekBand~iOS~实战入门~第一周_第4张图片
图片.png
矢量图

->PDF格式的矢量图
-->IIIustrator 或 Inkscape 导出PDF
-->用 Keynote
->@1x 尺寸
->在 Assert Catalog里设置

5.猜城市(需求分析)

需求分析
GeekBand~iOS~实战入门~第一周_第5张图片
界面.png
分析、设计
GeekBand~iOS~实战入门~第一周_第6张图片
UML图.png

6.猜城市(代码讲解)

你可能感兴趣的:(GeekBand~iOS~实战入门~第一周)