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的代码结构
-->main()
-->UIApplicationMain()
-->UIApplication对象
-->UIApplicationDelegate
AppDelegate继承UIResponder类,实现了UIApplicationDelegate委托协议。
ViewController类继承UIViewController类,是视图控制器类,在工程中是根视图和用户事件控制类。
启动HelloWorld,调用application:didFinishLaunchingWithOptions:方法。
->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
-><connections> <outlet property="messageLabel" destination="Sik-hr-KEe" id="qCb-1M-czN"/> <outlet property="nameField" destination="x9C-NC-3Hg" id="L1H-Uq-oGn"/> </connections>
->存在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
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];
矢量图
->PDF格式的矢量图
-->IIIustrator 或 Inkscape 导出PDF
-->用 Keynote
->@1x 尺寸
->在 Assert Catalog里设置