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";


18.可以自定义UItableviewcell的子类


第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 =NSSearchPathForDirectoriesInDomainsNSDocumentDirectory,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

(未完待续)





0 0
原创粉丝点击