首页 > 代码库 > iPhone 4与iPad开发基础教程知识点总结

iPhone 4与iPad开发基础教程知识点总结

第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];

    [actionSheet showInView:self.view];

    [actionSheet release];

    

}

警告的使用:

- (void)actionSheet:(UIActionSheet *)actionSheet

didDismissWithButtonIndex:(NSInteger)buttonIndex

{

    if (buttonIndex != [actionSheet cancelButtonIndex])

    {

        NSString *msg = nil;      

        msg = @"everything went OK.";

        UIAlertView *alert = [[UIAlertView alloc]

                             initWithTitle:@"Something was done"

                             message:msg

                             delegate:self

                             cancelButtonTitle:@"Phew!"

                             otherButtonTitles:nil];

        [alert show];

        [alert release];

        [msg release];

    }

}


7.为按钮指定可拉伸图像

在按钮的属性检查器中将type设置为custom。

- (void)viewDidLoad {

// 控件状态为普通时,指定图像whiteButton.png

    UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"];

    UIImage *stretchableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];

    [doSomethingButtonsetBackgroundImage:stretchableButtonImageNormalforState:UIControlStateNormal];

    // 控件状态为选中时,指定图像blueButton.png

    UIImage * buttonImagePressed = [UIImageimageNamed:@"blueButton.png"];

    UIImage * stretchableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0];

    [doSomethingButtonsetBackgroundImage:stretchableButtonImagePressedforState:UIControlStateHighlighted];

    [superviewDidLoad];

}


第5章

8.

iPhone   320 * 480像素

iPad      768 * 1024像素

状态栏高度20像素


9.使用自动调整属性处理旋转

10.在旋转时重构视图

11.切换视图


(未完待续)





iPhone 4与iPad开发基础教程知识点总结