iPhone起步Word文档格式.docx
- 文档编号:16314507
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:20
- 大小:963.74KB
iPhone起步Word文档格式.docx
《iPhone起步Word文档格式.docx》由会员分享,可在线阅读,更多相关《iPhone起步Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
//HelloiPhone
//CreatedbyElfSundaeon11/4/10.
//Copyright2010Elf.Sundae(at)G.Allrightsreserved.
#import<
UIKit/UIKit.h>
@interfaceHelloiPhoneViewController:
UIViewController
{
UITextField*textField;
}
@property(retain,nonatomic)IBOutletUITextField*textField;
-(IBAction)buttonPressed:
@end
在Groups&
Files窗格下的Resources下,双击HHelloiPhoneViewController.xib,将打开InterfaceBuilder。
选择菜单Tools|Library(command+Shift+L),从Library下的Objects拖动一个TextField和一个RoundRectButton到View。
双击button改名为“OK”。
按着Ctrl键,从IB主窗口的File'
sOwner拖一条线到View的TextField,在弹出的窗口选择textField。
鼠标点选View中button,按command+2或者菜单选择"
Tools|ConnetionsInspector"
,从Event中的TouchUpInside后面的小圆圈拉一条线连接到主窗口的File'
sOwner,并在弹出窗口中选择“buttonPressed:
”。
以上拖拽动作称为“连接”,将我们在类控制器中声明的IBOutlet和IBAction连接到IB视图中控件或方法。
下来回到Xcode实现控制器类:
1//
2//HelloiPhoneViewController.m
3//HelloiPhone
4//
5//CreatedbyElfSundaeon11/4/10.
6//Copyright2010Elf.Sundae(at)G.Allrightsreserved.
7//
8
9#import"
HelloiPhoneViewController.h"
10
11@implementationHelloiPhoneViewController
12
13@synthesizetextField;
14
15-(IBAction)buttonPressed:
(id)sender
16{
17UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:
@"
Hello,iPhone!
18message:
self.textField.text
19delegate:
nil
20cancelButtonTitle:
OK!
21otherButtonTitles:
nil];
22[alertshow];
23[alertrelease];
24}
25
26-(void)didReceiveMemoryWarning{
27//Releasestheviewifitdoesn'
thaveasuperview.
28[superdidReceiveMemoryWarning];
29
30//Releaseanycacheddata,images,etcthataren'
tinuse.
31}
32
33-(void)viewDidUnload{
34//Releaseanyretainedsubviewsofthemainview.
35//e.g.self.myOutlet=nil;
36self.textField=nil;
37}
38
39
40-(void)dealloc{
41[textFieldrelease];
42[superdealloc];
43}
44
45@end
运行iPhone模拟器测试后发现键盘不能自动关闭。
下面来解决这个问题,让输入完后按键盘上的return即可关闭,或者触摸背景关闭键盘(数字键盘上没有return键,iphone程序常设计为触摸背景关闭键盘输入状态)。
完成输入后关闭键盘
当用户按下return键时,将生成一个DidEndOnExit事件,此时我们需要让textField取消控件已关闭键盘。
用户当前正在与之交互的控件称为第一响应者(firstResponder)。
方法-(BOOL)resignFirstResponder使触发此操作的控件取消第一响应者状态。
我们在控制器类头文件中声明方法:
-(IBAction)textFieldDoneEditing:
保存项目后在IB中将textField的DidEndOnExit事件连接到此方法。
保存IB返回Xcode实现此方法:
//取消第一响应者状态
[senderresignFirstResponder];
重新编译并运行,发现可以通过按下return键来完成输入了!
通过触摸背景关闭键盘
并非所有键盘布局都有return键,例如数字键盘。
苹果公司的iPhone程序是这样做的:
在大多数有textField的情况下,在试图中任何无活动控件的位置按下手指都可让键盘消失。
实现此功能非常简单,只要创建一个不可见的按钮,将其置于其他所有元素的后面,用于通知textField在检测到触摸操作时生成第一响应者状态。
//通过触摸屏幕关闭键盘
-(IBAction)backgroundTap:
//在非第一响应者控件上调用resignFirstResponder是绝对安全的。
//因此可以放心的对所有textField调用resignFirstResponder
[textFieldresignFirstResponder];
保存代码来到IB。
我们现在需要更改nib试图的底层类。
在IB主窗口中单击选择View,command+4调出身份检查器。
将标有Class的字段由UIView更改为UIControl。
能够触发操作方法的所有控件都是UIControl的子类,所以通过更改底层类,此View将能够触发操作方法。
现在按command+2应该能看到Event。
将TouchDown事件连接到File'
sOwner的backgroundTap:
操作。
保存IB返回Xcode后编译并运行,可以看到触摸视图中没有活动控件的任何位置(屏幕背景或lable等控件)都将触发backgroundTap:
应用程序图标:
应用程序图标为57×
57都PNG文件,iPhone将自动将边缘圆角化并让它具有玻璃质感。
默认情况下,SDK会搜寻名为icon.png的资源并使用它作为应用程序图标。
如果你都图标文件不叫icon.png,可以在plist中添加图标属性,方法为:
将图标文件添加到项目Resources文件夹中,打开项目-Info.plist,在Iconfile中填入图标文件名。
代码整理:
HelloiPhoneViewController.h
1//
2
3
4
5//CreatedbyElfSundaeon11/4/10.
6//Copyright2010Elf.Sundae(at)G.Allrightsreserved.
7//
8
9#import<
10
11@interfaceHelloiPhoneViewController:
12{
13UITextField*textField;
14}
15
16@property(retain,nonatomic)IBOutletUITextField*textField;
17
18-(IBAction)buttonPressed:
19-(IBAction)textFieldDoneEditing:
20-(IBAction)backgroundTap:
21
22@end
HelloiPhoneViewController.m
2//HelloiPhoneViewController.m
3//HelloiPhone
4//
9#import"
11@implementationHelloiPhoneViewController
12
13@synthesizetextField;
14
15-(IBAction)buttonPressed:
16{
17UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:
18message:
19delegate:
20cancelButtonTitle:
21otherButtonTitles:
22[alertshow];
23[alertrelease];
24}
25
26-(IBAction)textFieldDoneEditing:
27{
28//取消textField第一响应者状态
29[senderresignFirstResponder];
30}
31
32//通过触摸屏幕关闭键盘
33-(IBAction)backgroundTap:
34{
35//在非第一响应者控件上调用resignFirstResponder是绝对安全的。
36//因此可以放心的对所有textField调用resignFirstResponder
37[textFieldresignFirstResponder];
38}
39-(void)didReceiveMemoryWarning{
40//Releasestheviewifitdoesn'
41[superdidReceiveMemoryWarning];
42
43//Releaseanycacheddata,images,etcthataren'
44}
45
46-(void)viewDidUnload{
47//Releaseanyretainedsubviewsofthemainview.
48//e.g.self.myOutlet=nil;
49self.textField=nil;
50}
51
52
53-(void)dealloc{
54[textFieldrelease];
55[superdealloc];
56}
57
58@end
iPhone起步-2:
iPhone常用控件、UIActionSheet、UIAlertView
一、UILabel
二、UIButton
常用事件:
TouchUpInside
三、UITextField
常用属性:
Text:
要显示的文本。
Placeholder:
指定将要在文本字段中以灰色显示的占位符文本。
ClearWhenEditingBegins:
用户触摸此字段时是否删除字段中的值。
TextInputTraits:
文本输入特征。
四、UIImageView
image:
指定图像文件
Mode:
图像在视图内部的对齐方式以及是否缩放图像以适应视图。
选择任何图像缩放的选项都会潜在地增加处理开销,因此最好避开这些选项,并在导入图像之前调整好图像大小。
通常Mode属性为Center。
Alpha:
图像透明度。
一般设置为1.0
Background:
该属性继承自UIView,但它不会影响图像视图的外观,请忽略此属性。
Drawing复选框:
选中Opaque表示视图后面的任何内容都不应该绘制,并且允许iPhone都绘图方法通过一些优化来加速绘图。
ClearContextBeforeDrawing:
选中它之后,iPhone将使用透明黑色绘制控件覆盖都所有区域,然后才实际绘制控件。
考虑到性能问题,并且适用情况很少,通常很少需要选中ClearContextBeforeDrawing。
Interaction复选框:
UserInteractionEnabled:
指定用户能否对此对象进行操作。
MultipleTouch:
是否能够接收多点触摸事件。
五:
UISlider(滑块)
ValueChanged
示例:
//将silder的值反映到sliderLabel
-(IBAction)sliderValueChanged:
(id)sender
{
UISlider*slider=(UISlider*)sender;
intprogressAsInt=(int)(slider.value+0.5f);
NSString*newText=[[NSStringalloc]initWithFormat:
%d"
progressAsInt];
sliderLabel.text=newText;
[newTextrelease];
}
六:
UISwitch(开关)
代码
//属性on:
获取开关的状态是否为on
//方法setOn:
设置开关的状态
-(IBAction)switchChanged:
UISwitch*whichSwitch=(UISwitch*)sender;
BOOLsetting=whichSwitch.on;
[leftSwitchsetOn:
settinganimated:
YES];
[rightSwitchsetOn:
七、UISegmentedControl
#definekSegmentIndex_Switches0
#definekSegmentIndex_Button1
-(IBAction)segmentChanged:
switch([senderselectedSegmentIndex])
{
casekSegmentIndex_Switches:
leftSwitch.hidden=NO;
rightSwitch.hidden=NO;
doSomethingButton.hidden=YES;
break;
casekSegmentIndex_Button:
leftSwitch.hidden=YES;
rightSwitch.hidden=YES;
doSomethingButton.hidden=NO;
}
八、UIActionSheet(操作表)和UIAlertView(警报)
UIActionSheet用于迫使用户在两个或更多选项之间进行选择都模式视图。
操作表从屏幕底部弹出,显示一系列按钮供用户选择,用户只有单击了一个按钮后才能继续使用使用应用程序。
UIAlertView(警报)以蓝色圆角矩形都形式出现在屏幕的中部,警报可显示一个或多个按钮。
为了让控制器类充当操作表的委托,控制器类需要遵从UIActionSheetDelegate协议。
我们通过在类声明都超类之后都尖括号中添加协议名称来实现。
@interfaceUntitledViewController:
<
UIActionSheetDelegate>
//....
//创建操作表:
UIActionSheet*actionSheet=[[UIActionSheetalloc]
initWithTitle:
Areyousure?
delegate:
self
cancelButtonTitle:
Cancel"
destructiveButtonTitle:
Yes,I'
msure."
otherButtonTitles:
[actionSheetshowInView:
self.view];
[actionSheetrelease];
//实现方法:
#pragmamarkActionSheetDelegateMethods
-(void)actionSheet:
(UIActionSheet*)actionSheetdidDismissWithButtonIndex:
(NSInteger)buttonIndex
if(buttonIndex!
=[actionSheetcancelButtonIndex])
NSString*text=[[NSStringalloc]initWithFormat:
testalert"
];
UIAlertView*alert=[[UIAlertViewalloc]
Somethingwasdone."
message:
text
[alertshow];
[alertrelease];
[textrelease];
//-(void)actionSheet:
(UIActionSheet*)actionSheetclickedButtonAtIndex:
//{
//NSLog(@"
buttonIndex);
//}
视图有一个UISegmentedControl,"
Switches"
下有两个UISwitch
Button"
下有一个“DoSomething"
的UIButton
触摸"
DoSomething"
Button时弹出UIActionSheet
触摸选择"
时弹出UIAlertView
OBJECTIVE-CCODE
:
UntitledViewController.h
1
2
3
4
5
6
7
9
11
13
15
16
17
18
19
20
21
22
23
24
26
27
28
29
30
31
//UntitledViewController.h
//Untitled
//CreatedbyElfSundaeon11/10/10.
//Copyright2010BAllrightsreserved.
#definekSegmentIndex_Switches0
#definekSegmentIndex_Button 1
UIViewC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iPhone 起步