读书频道 > 网站 > 网页设计 > iPhone & iPad高级编程
1.5.1 开发步骤:一个简单的工具栏
13-01-11    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > iPhone & iPad高级编程

开发人员们希望通过一本高级编程学习资源的指引下透彻掌握iPhone和iPad编程技术,在日益成熟的iPhone领域和方兴未艾的iPad领域大显身手,取得一番成就。本书满足了开发人员的这种需要,它循序渐进地描述iPhone和...立即去当当网订购

要创建一个简单的工具栏应用程序,需执行以下步骤:

(1) 启动Xcode软件,创建一个名为SimpleToolbar-iPhone的基于视图的iPhone应用程序。附录A中列出了创建基于视图的应用程序的初始步骤,您可以从中了解相关信息。

(2) 为该项目添加一个UIImageView对象、一个UIToolbar对象和4个UIBarButtonItem对象。

在Xcode的Groups & Files窗口左侧选择Resources选项。

选择Project | Add To Project。

选择一幅图像并命名为grandpa.png。选择像素约为300×300的图像,然后单击Add按钮(如图1-5所示)。

选中Copy items into destination group's folder选项,然后单击Add按钮(如图1-6所示)。


 

(3) 双击SimpleToolbar_iPhoneViewController.xib文件,启动Interface Builder(如图1-7所示)。


 

(4) 从Interface Builder Library(Tool | Library)中选择以下项目,并将其拖入View窗口。执行此步骤后,界面如图1-8所示:

1个大小为260×260的UIImageView对象。为此需要执行以下3个步骤:

(1) 将UIImageView对象拖入View窗口,该对象将占满整个视图。

(2) 从主菜单中选择Tool | Size Inspector选项,在该检查器右上角的Frame下拉框之下,将看到内容分别为W:240和H:128的两个输入框。

(3) 将视图大小改成W:260和H:260,并使其居中。

1个UIToolbar对象,将其放在视图底部。

3个UIBarButtonItems对象,将它们放在工具栏上,然后选择Tools | Attributes Inspector选项,输入以下参数:

第一个按钮输入Title:+45,Tag:0

第二个按钮输入Title:+180,Tag:1

第三个按钮输入Title:-180,Tag:2

第四个按钮输入Title:-45,Tag:3

两个Flexible Space Bar Button Item组件,分别放在第一个按钮的左边和最后一个按钮的右边(如图1-9所示)。


 

(5) 返回Interface Builder Library界面,单击界面顶部的Classes,然后滚动选择Simple- Toolbar_iPhoneViewController类。在界面底部选择Outlets按钮,单击+按钮并添加以下Outlet,如图1-10所示:

imageView(使用UIImageView类型,而非id类型)

(6) 选择Actions按钮。单击+按钮并添加以下操作,如图1-11所示:

rotateView


 

(7) 在Interface Builder的主菜单中选择File | Write Class Files选项,从第一个弹出窗口中选择Save按钮,在下一个弹出窗口中选择Merge按钮。此时,添加过新内容的SimpleToolbar_ iPhoneViewController.m文件将显示在界面左边,而其原始模板则位于右边(如图1-12所示)。

在右下角选择Actions | Choose Left。

选择File | Save Merge,然后关闭窗口。

(8) 下一个窗口是SimpleToolbar_iPhoneViewController.h界面,添加过新内容的SimpleToolbar_ iPhoneViewController.h文件显示在界面左边,其原始模板显示在右边(如图1-13所示)。

在右下角选择Actions | Choose Left。

选择Find | Go to Next | Difference。

在右下角选择Actions | Choose Left。

选择File | Save Merge,然后关闭窗口。


 

(9) 至此您拥有了一个包含应用程序视图逻辑的Objective-C模板。在真正着手编写程序之前,还需要在Interface Builder中完成另一项任务,即必须建立关联:

将UIImageView确定为imageView。

为了建立关联,以便将UIImageView确定为imageView,在按住Ctrl键的同时单击File's Owner图标,打开File's Owner检查器(如图1-14所示)。

(10) 查看File's Owner检查器的右边,在按住Ctrl键的同时将imageView的圆圈拖到UIImageView imageView上,当圆圈显示高亮状态时松开鼠标。圆圈填满则表明已经建立了关联。

(11) 查看File's Owner查看器的右边,在按住Ctrl键的同时将rotateView的圆圈分别拖到每个UIBarButtonItems上(如图1-15所示)。选择File | Save选项,然后关闭File's Owner检查器。


 

下面开始设计逻辑。

简单工具栏的源程序清单

此应用程序直接使用自动生成的SimpleToolbar_iPhoneAppDelegate.h文件和SimpleToolbar_ iPhoneAppDelegate.m文件,并不对其进行修改。

修改SimpleToolbar_iPhoneViewController.h模板

在Interface Builder中已经声明了以下Outlet:

imageView

为了获取和设置该变量的值,必须定义其属性(如程序清单1-19所示)。

将IBOutlet移到属性声明中。

程序清单1-19  完整的SimpleToolbar_iPhoneViewController.h文件(/Chapter1/SimpleToolbar-
iPhone/Classes/SimpleToolbar_iPhoneViewController.h)
#import <UIKit/UIKit.h>

@interface SimpleToolbar_iPhoneViewController : UIViewController {
UIImageView *imageView;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
- (IBAction)rotateView:(id)sender;
@end

修改SimpleToolbar_iPhoneViewController.m模板

前面更新了头文件,定义了添加到模板的内容,下面开始修改SimpleToolbar_iPhoneView- Controller.m模板。

必须为每个已经声明的视图属性添加相应的@synthesize(如程序清单1-20所示)。

程序清单1-20  添加@synthesize
#import "SimpleToolbar_iPhoneViewController.h"
@implementation SimpleToolbar_iPhoneViewController
@synthesize imageView;

应用程序启动后,将加载和显示默认的grandpa.png图像(如程序清单1-21所示)。

程序清单1-21  viewDidLoad方法
#pragma mark -
#pragma mark View lifecycle
// Implement viewDidLoad to do additional setup after loading the view,
// typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[imageView setImage:[UIImage imageNamed:@"grandpa.jpg"]];
}

当点击工具栏项按钮时,将调用rotateView方法,根据项的标签值来确定旋转角度,如程序清单1-22所示。

程序清单1-22  rotateView方法
#pragma mark -
#pragma mark Action methods
- (IBAction)rotateView:(id)sender {
static CGFloat angle = 0.0;
switch ([sender tag]) {
case 0:
angle += 45.0;
break;
case 1:
angle += 180.0;
break;
case 2:
angle -= 180.0;
break;
case 3:
angle -= 45.0;
break;
default:
break;
}
CGAffineTransform transform=CGAffineTransformMakeRotation(angle);
[imageView setTransform:transform];
}

就此完成了SimpleToolbar_iPhoneViewController.m文件。程序清单1-23列出了完整的实现代码。

程序清单1-23  完整的SimpleToolbar_iPhoneViewController.m文件/(Chapter1/SimpleToolbar-
iPhone/Classes/SimpleToolbar-iPhoneViewController.h)
#import "SimpleToolbar_iPhoneViewController.h"
@implementation SimpleToolbar_iPhoneViewController
@synthesize imageView;
#pragma mark -
#pragma mark View lifecycle
// Implement viewDidLoad to do additional setup after loading the view,
// typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[imageView setImage:[UIImage imageNamed:@"grandpa.jpg"]];
}
#pragma mark -
#pragma mark Action methods
- (IBAction)rotateView:(id)sender {
static CGFloat angle = 0.0;
switch ([sender tag]) {
case 0:
angle += 45.0;
break;
case 1:
angle += 180.0;
break;
case 2:
angle -= 180.0;
break;
case 3:
angle -= 45.0;
break;
default:
break;
}
CGAffineTransform transform=CGAffineTransformMakeRotation(angle);
[imageView setTransform:transform];
}
#pragma mark -
#pragma mark Memory methods
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
[self setImageView:nil];
}
- (void)dealloc {
[imageView release];
[super dealloc];
}
@end

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站