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

{

[nameField
resignFirstResponder];

[numberField
resignFirstResponder];

}

第四步:打开连接检查器,从touch down事件拖到file‘s owner图标上,然后选择backgroundTap:操作。

6.实现操作表和警告

操作表和警报都用于向用户提供反馈。

操作表用于迫使用户在两个或更多项之间进行选择,从底部弹出。用户只有单击一个按钮之后才能继续使用应用程序。它通常用于确认潜在的危险或不能撤销的操作,如删除一个对象。

警告以蓝色圆角矩形的形式出现在屏幕中央。也迫使用户在继续使用应用程序之前作出响应。它更多的用于通知用户发生了一些重要或不正常的事情。它可能显示为单个按钮,也可以显示多个按钮。

操作表和警告都适用委托。为了让控制器类充当操作表的委托,控制器类需要遵从UIactionsheetDelegate协议。

这需要在类声明的超类之后的尖括号中添加协议名称。

@interface Hello_WorldViewController :
UIViewController

<UIActionSheetDelegate> {

调用操作表的操作:

- (IBAction)buttonPressed {

UIActionSheet *actionSheet = [[UIActionSheet
alloc]

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

[doSomethingButton
setBackgroundImage:stretchableButtonImageNormal
forState:UIControlStateNormal];

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

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

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

[doSomethingButton
setBackgroundImage:stretchableButtonImagePressed
forState:UIControlStateHighlighted];

[super
viewDidLoad];

}

第5章

8.

iPhone   320 * 480像素

iPad      768 * 1024像素

状态栏高度20像素

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

10.在旋转时重构视图

11.切换视图

(未完待续)

时间: 2024-10-05 04:19:33

iPhone 4与iPad开发基础教程知识点总结的相关文章

iOS 9音频应用开发基础教程

iOS 9音频应用开发基础教程(大学霸内部资料) 介绍:iOS 9音频应用开发基础教程(内部资料)是iOS 9音频应用开发专向教程.本书采用Swift 2.0语言开发基于iOS 9的音频应用.实现的功能不仅包括音频播放和录音等基本功能,还包括播放列表.歌词功能.流媒体音乐.均衡器.可视化效果.文本朗读等高级功能. 学习建议:学习本教程内容,需要掌握Swift语言基础和iOS开发基础.如果不具备这两方面,建议用户阅读本店的以下教程: Swift语言快速入门 iOS 9应用开发基础教程 试读文档下载

Unity2D游戏开发基础教程1.2 项目、资源和场景

Unity2D游戏开发基础教程1.2 项目.资源和场景 如果使用Unity制作游戏,就一定会接触到项目(Project.资源(Asset)和场景(Scene).本节将依次介绍它们. 1.2.1项目 Unity是一个基于项目的应用.这就意味着每开发一个新游戏,都要创建一个新项目.一个项目就代表一个游戏,不管游戏是2D还是3D的.开发人员可以把项目当做容器,它包含了开发游戏时,自动生成还有引入的所有文件.本文选自<Unity2D游戏开发基础教程大学霸> 要在Unity里创建一个新项目,可以单击Fi

AndoridSQLite数据库开发基础教程(10)

AndoridSQLite数据库开发基础教程(10) 添加触发器 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT.DELETE.UPDATE和UPDATE OF.当数据库系统执行这些事件时,会激活触发其执行相应的操作.下面为数据库添加触发器.操作步骤如下: (1)打开的数据库,单击左下角的齿轮按钮,选择其中的Create Trigger选项,弹出Trigger Creator对话框,如图1.23所示. 图1.23  Trigger Creator对话框 (2)在Trig

Xamarin图表开发基础教程(3)OxyPlot框架

Xamarin图表开发基础教程(3)OxyPlot框架 Xamarin.Android中使用OxyPlot框架 在Xamarin.Android平台上实现图表显示需要完成以下的步骤: 1.添加OxyPlot.Xamarin.Android组件 打开Xamarin.Android项目,使用Nuget将OxyPlot.Xamarin.Android组件添加到项目的引入中. 2.布局PlotView视图 在界面布局axml文件中,使用PlotView视图进行布局,其语法形式如下: <OxyPlot.X

Xamarin图表开发基础教程(4)OxyPlot框架

Xamarin图表开发基础教程(4)OxyPlot框架 XamaminAndroid中绘制线图OxyPlotAndroidDemo [示例1-1:OxyPlotAndroidDemo]下面实现线图的绘制.具体的操作步骤如下: (1)打开Xamarin.Android项目. (2)将OxyPlot.Xamarin.Android组件添加到项目中的引入中. (3)打开activity_main.axml文件,使用PlotView进行布局.代码如下: <?xml version="1.0&quo

Xamarin图表开发基础教程(6)OxyPlot框架

Xamarin图表开发基础教程(6)OxyPlot框架 Xamamin iOS中绘制线图OxyPlotiOSDemo [示例OxyPlotiOSDemo]下面将实现线图的显示.具体的操作步骤如下: (1)打开Xamarin.iOS项目. (2)将OxyPlot.Xamarin.iOS组件添加到项目中的引入中. (3)打开ViewController.cs文件,完成剩余的步骤,即创建PlotView视图.绘制图表.设置显示模式以及显示PlotView.代码如下: using Foundation;

【小蜜蜂老师主讲】基于STM32CubeMX的嵌入式开发基础教程

基于STM32CubeMX的嵌入式开发基础教程 广东职业技术学院/小蜜蜂笔记网  欧浩源 [第01单元]:STM32CubeMX的安装与快速入门 教案资源链接,视频教程链接. [第02单元]:STM32的GPIO开发基础 教案资源链接,视频教程链接. [第03单元]:STM32的按键开发基础 教案资源链接,视频教程链接. [第04单元]:STM32的中断系统与外部中断基础 教案资源链接,视频教程链接. [第05单元]:STM32的定时器开发基础 教案资源链接,视频教程链接. [第06单元]:ST

Daydream从入门到精通——快速入门开发基础教程二:Android端开发环境配置二

开始部署 上篇介绍了开发Daydream Android VR需要的基本环境,这篇我们来看看如何部署和运用官方示例. -------------------------------------------------------------------------------------------------------------------- Daydream快速入门开发基础教程一:Android端开发环境配置一 http://blog.csdn.net/jaikydota163/arti

iPhone开发基础教程_第二章

1.各个子文件夹的作用        Classes:                    编写的大多代码都保存在这里,其中包括所有的Objective-C类,可以在Classes文件夹下创建一些子文件夹来组织代码.        Other Sources:                    包含除了Objective-C类之外的源代码文件,此文件夹包含下面两个文件                        Hello World_Prefix.pch:扩展名.pch表示"预编译的头