iPhone 4与iPad开发基础教程知识点总结
来源:互联网 发布:电脑打击垫软件 编辑:程序博客网 时间:2024/05/16 04:35
第3章 处理基本交互
1.iOS应用程序委托
委托是负责为另一个对象处理特定事情的类。
通过应用程序委托,我们可以在预先定义的时间为UIapplication处理事情。
每个iPhone应用程序都有一个且仅有一个UI application实例,负责应用程序的运行循环以及处理各种应用程序级功能,如将输入发送给适合的控制器类。
UIapplication是uikit的标准部分,它主要在后台处理任务,因此一般不需要担心它。
但是,在应用程序执行过程中明确制定的时间内,UIapplication将调用特定的委托方法。
例如,如果需要在程序退出之前触发某段代码,可以在应用程序委托中实现applicationWillTerminate:方法,并将终止代码置于其中。
这种委托可以让应用程序实现常用的应用程序级行为,而不需要继承UIapplication,或了解他的任何内部机制。
2.当UIViewController的某个实例或某个子类被实例化时,它将被告知从一个nib文件中初始化自身。在我们所使用的模版中,将从nib文件xxx.nib加载xxxviewcontroler类。
这一步是自动完成的,我们无需执行任何操作,它是我们选择的项目模板的一个controller类。
由于mainwindow.xib文件包含一个表示xxxviewcontroller的图标,因此应用程序在启动时将自动创建一个xxxviewcontroller实例。
此后,该实例会自动将xxxviewcontroller.xib加载到内存中并成为该文件的所有者。
viewcontroller.xib的file‘s owner 是view controller类的一个实例。
3.label与文本绑定
按下control键,单击nib主窗口的file's owner 图标,并按住鼠标按钮,从file's owner 图标拖向view窗口。
此时应出现一条蓝色引导线。继续拖动鼠标,直到光标位于view窗口的标签之上。松开鼠标,就会弹出一个小菜单,选择要连接的输出口。
4。给按钮指定操作
选中按钮,打开connection inspector连接检查器。在event栏下看到触发操作的所有事件列表。选中你所要指定操作右侧的小圆圈,点击并拖动
到file's owner 图标,松开鼠标,弹出小菜单,选择按钮指定操作。
第4章 更丰富的用户界面
5.通过触摸背景关闭键盘
视图控制器的view属性,它继承自UIviewcontroller。这个view属性对应与nib文件中的view图标。此属性指向nib文件中一个UIview实例,该实例充当着用户界面中所有项的容器。它在用户界面中没有外观,但涵盖了整个iPhone窗口,位于所有其他用户界面对象“之下”。它有时称为nib文件的容器视图,因为他的主要用途是持有其他视图和控件。该容器时我们的用户界面的背景。
第一步:将视图控制器的view属性更改为指向UIview类对象,UIcontroller是UIview的子类,改为UIcontroller后将能够出发操作方法。选中view图标,打开身份检查器,将class值该为UIcontroller。
第二步:定义方法。例如xxxviewcontroller.h文件中定义方法:
- (IBAction)backgroundTap:(id)sender;
第三步:.m 中的方法实现如下:
-(IBAction)backgroundTap:(id)sender
{
[nameFieldresignFirstResponder];
[numberFieldresignFirstResponder];
}
第四步:打开连接检查器,从touch down事件拖到file's owner图标上,然后选择backgroundTap:操作。
6.实现操作表和警告
操作表和警报都用于向用户提供反馈。
操作表用于迫使用户在两个或更多项之间进行选择,从底部弹出。用户只有单击一个按钮之后才能继续使用应用程序。它通常用于确认潜在的危险或不能撤销的操作,如删除一个对象。
警告以蓝色圆角矩形的形式出现在屏幕中央。也迫使用户在继续使用应用程序之前作出响应。它更多的用于通知用户发生了一些重要或不正常的事情。它可能显示为单个按钮,也可以显示多个按钮。
操作表和警告都适用委托。为了让控制器类充当操作表的委托,控制器类需要遵从UIactionsheetDelegate协议。
这需要在类声明的超类之后的尖括号中添加协议名称。
@interface Hello_WorldViewController :UIViewController
<UIActionSheetDelegate> {
- (IBAction)buttonPressed {
UIActionSheet *actionSheet = [[UIActionSheetalloc]
initWithTitle:@"Are you sure?"
delegate:self
cancelButtonTitle:@"No Way!"
destructiveButtonTitle:@"Yes, I’m Sure!"
otherButtonTitles:nil];
[actionSheetshowInView:self.view];
[actionSheetrelease];
}
警告的使用:- (void)actionSheet:(UIActionSheet *)actionSheet
didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex != [actionSheetcancelButtonIndex])
{
NSString *msg =nil;
msg = @"everything went OK.";
UIAlertView *alert = [[UIAlertViewalloc]
initWithTitle:@"Something was done"
message:msg
delegate:self
cancelButtonTitle:@"Phew!"
otherButtonTitles:nil];
[alertshow];
[alertrelease];
[msgrelease];
}
}
7.为按钮指定可拉伸图像
在按钮的属性检查器中将type设置为custom。
- (void)viewDidLoad {
// 控件状态为普通时,指定图像whiteButton.png
UIImage *buttonImageNormal = [UIImageimageNamed:@"whiteButton.png"];
UIImage *stretchableButtonImageNormal = [buttonImageNormalstretchableImageWithLeftCapWidth:12topCapHeight:0];
[doSomethingButtonsetBackgroundImage:stretchableButtonImageNormalforState:UIControlStateNormal];
// 控件状态为选中时,指定图像blueButton.png
UIImage * buttonImagePressed = [UIImageimageNamed:@"blueButton.png"];
UIImage * stretchableButtonImagePressed = [buttonImagePressedstretchableImageWithLeftCapWidth:12topCapHeight:0];
[doSomethingButtonsetBackgroundImage:stretchableButtonImagePressedforState:UIControlStateHighlighted];
[superviewDidLoad];
}
第5章
8.
iPhone 320 * 480像素
iPad 768 * 1024像素
状态栏高度20像素
9.使用自动调整属性处理旋转
10.在旋转时重构视图
11.切换视图
第6章
12.多视图应用程序
第7章
13.标签栏的使用
14.选取器的使用
选取器有多种:
日期选取器
单组件选取器
多组件选取器
依赖组件的选取器
利用图像自定义选取器
第8章
15.表视图
表视图是用于向用户显示数据列表的一种最常见的机制。
表视图的两种基本样式:
分组表
无格式表,若使用索引又称为索引表。
16.可以使用单元的image属性,为每个表视图单元添加一个图像。
UIImage *image = [UIImageimageNamed:@"star.png"];
cell.imageView.image = image;
17.单元格样式可使用3种不同的单元格元素:
图像:显示在单元文本左侧
文本标签:主要文本。单元格样式设为UITableViewCellStyleDefault时只显示的文本。
详细文本标签:用作解释性的说明或标签。
单元格样式设为UITableViewCellStyleSubtitle,详细文本标签出现在文本标签的下方;
单元格样式设为UITableViewCellStyleValue1,详细文本标签出现在单元的另一端;
单元格样式设为UITableViewCellStyleValue2,详细文本标签出现在文本标签的右侧。
添加详细文本标签:
NSUInteger row = [indexPathrow];
cell.textLabel.text = [listDataobjectAtIndex:row];
cell.textLabel.font = [UIFontboldSystemFontOfSize:50];
cell.detailTextLabel.text =@"Mr. Disney";
第9章
19.导航控制器可以处理复杂的分层数据。
导航控制器维护一个视图控制器栈。任何类型的视图控制器都可以放入栈中。
指定用户看到的第一个视图,是视图层次结构中最底层的视图,其控制器称为根视图控制器或根控制器。
当用户选择查看下一个视图时,栈中将加入一个新的视图控制器,他所控制的视图将展示给用户。我们把这些新的视图控制器称为子控制器。
20.
可以通过设置单元格的accessoryType属性来指定标准扩展图标;
可以通过设置单元格的showReorderControl属性来设置可以重新排序属性(此值为YES,且表进入编辑模式才会真正显示重新排序控件)
第10章
21.
Split View-based Application 项目包含:
一个应用程序委托
类rootviewcontroller 分割视图左侧显示的视图,导航视图,定义导航结构的顶级视图
DetailViewController。分割视图右侧显示的视图,详细信息视图,定义在选择某个导航元素时在较大区域中显示的内容。
第11章
1.设置束
设置束是构建到应用程序中的一组文件,它告诉setting应用程序,主应用程序希望从用户那里收集到哪些首选项。
2.可以用NSUserDefaults 类读取用户设置。
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
defaults就是指向标准用户默认设置的指针,可以像NSDictionary一样使用它。
第12章
1.将数据持久存储到iOS的文件系统的4种机制:
属性列表
对象归档(类需要符合NSCoding和NSCopying协议)
iOS嵌入式关系数据库(称为SQLite3)
苹果公司提供的持久性工具Core Data
2.iOS应用程序支持的3个文件夹
Documents:除基于NSUserDefaults的首选项外,应用程序的数据存储的地方。
Library:基于NSUserDefaults的首选项设置存储在library/Preferences文件夹中。
tmp:应用程序存储临时文件。
3.检索documents目录路径的代码:
NSArray *paths =NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
4.获取tmp目录
NSString * tempPath = NSTemporaryDirectory();
在tmp下创建一个文件:
NSString * tempFile = [tempPath stringByAppendingPathComponent:@"tempFile.txt"];
第13章
1.应用程序执行状态:
未运行:此状态表明所有应用程序位于一个刚刚重新启动的设备上。
活动状态:在屏幕上显示时的正常运行状态。
后台:再此状态中,应用程序获得了一定的时间来执行一些代码,但它无法直接访问屏幕或获取任何用户输入。用户按下home键后所有应用程序进入此状态。
暂停:暂停的应用程序被冻结。普通应用程序在处于后台状态后不久就会转变为此状态。
不活动:应用程序仅在两个其他状态之间的临时过渡阶段处于不活动状态。
2.状态更改
活动->不活动 applicationWillResignActive
不活动->后台 applicationDidEnterBackground后台->不活动 applicationWillEnterForeground
不活动->活动 applicationDidBecomeActive
(未完待续)
- iPhone 4与iPad开发基础教程知识点总结
- iPhone 4与iPad开发基础教程
- iPhone 4与iPad开发基础教程全网首发-创造销售奇迹的书籍
- Ipone 与 ipad 开发基础教程笔记
- (iPhone/iPad开发)零碎知识总结
- iPhone与iPad开发的区别
- iPhone与iPad开发的区别
- 《iPhone 4开发基础教程》读书笔记
- iPhone/iPad开发札记 2012/03/15 总结与思考音频问题
- iphone ipad 开发视频教程
- iphone 与 ipad 分辨率
- iPad开发与iPhone开发有什么不同
- iphone开发小知识点总结(更新)
- iPad/iPhone及Universal程序开发心得总结
- iPad/iPhone及Universal程序开发心得总结
- Python 基础教程 知识点总结
- 《iPhone 开发基础教程》
- iPhone 开发基础教程
- FZU - 2102 Solve equation(水题)
- mysql substring和concat用法
- <Android>R生成失败的几种可能
- 正向代理与反向代理的区别【Nginx读书笔记】
- OpenCV截取图像ROI并保存于指定路径
- iPhone 4与iPad开发基础教程知识点总结
- 7.2 平面文档的表示
- Python对象引用和del删除引用
- OpenGL ES 2.0基本概念
- 重载和重写
- jquery表格隔行变色
- leetcode——Scramble String
- 如何设置vagrant的共享文件夹方式为sshfs
- 厦门大学线下编程比赛第一题:求和