iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx

上传人:b****8 文档编号:28322878 上传时间:2023-07-10 格式:DOCX 页数:15 大小:1.05MB
下载 相关 举报
iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx_第1页
第1页 / 共15页
iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx_第2页
第2页 / 共15页
iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx_第3页
第3页 / 共15页
iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx_第4页
第4页 / 共15页
iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx

《iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx》由会员分享,可在线阅读,更多相关《iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx(15页珍藏版)》请在冰豆网上搜索。

iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析.docx

iOS应用中使用Toolbar工具栏方式切换视图的方法详解剖析

iOS应用中使用Toolbar工具栏方式切换视图的方法详解

这篇文章主要介绍了iOS应用中使用Toolbar工具栏方式切换视图的方法,文中讲解了UIToolbar的相关编写以及使用xib方式创建可切换视图程序的例子,需要的朋友可以参考下

关于UIToolbar

ToolBar工具栏是视图View的属性,可以在工具栏上添加工具栏按钮BarButtonItem(可以是自定义的Custom、也可以是系统自带的BarButtonSystemItem),视图控制器可以通过工具栏项对视图中内容进行操作。

注意事项:

在导航栏控制器中会有一个UIToolBar实例,但默认是隐藏的,如果需要显示,需要通过这个方法将其打开:

在这里需要注意的是,与UINavigationBar类似,导航控制器拥有且只拥有一个UIToolBar实例,但UIToolBar拥有的UIBarButtonItem实例,是由视图控制器进行管理的,如下所示:

工具栏风格:

1

2

3

4

5

6

typedefNS_ENUM(NSInteger,UIBarStyle){

UIBarStyleDefault=0,//默认风格,蓝色文字

UIBarStyleBlack=1,//黑色背景,褐色文字

UIBarStyleBlackOpaque=1,//纯黑色背景,白色文字

UIBarStyleBlackTranslucent=2,//透明黑色背景,白色文字

};

属性:

1

2

3

4

5

@property(nonatomic)UIBarStylebarStyle;//工具栏风格,默认为蓝色

@property(nonatomic,copy)NSArray*items;//工具栏中的按钮单元,UIBarButtonItem

@property(nonatomic,assign,getter=isTranslucent)BOOLtranslucent//是否透明

@property(nonatomic,retain)UIColor*tintColor;//按钮颜色

@property(nonatomic,retain)UIColor*barTintColor;//工具栏颜色

方法:

※设置工具栏中的按钮单元

1

-(void)setItems:

(NSArray*)itemsanimated:

(BOOL)animated;

※设置工具栏的背景图像

复制代码代码如下:

-(void)setBackgroundImage:

(UIImage*)backgroundImageforToolbarPosition:

(UIBarPosition)topOrBottombarMetrics:

(UIBarMetrics)barMetrics;

※获取工具栏的背景图像

复制代码代码如下:

-(UIImage*)backgroundImageForToolbarPosition:

(UIBarPosition)topOrBottombarMetrics:

(UIBarMetrics)barMetrics;

※设置工具栏的阴影图像

复制代码代码如下:

-(void)setShadowImage:

(UIImage*)shadowImageforToolbarPosition:

(UIBarPosition)topOrBottom;

※获取工具栏的阴影图像

复制代码代码如下:

-(UIImage*)shadowImageForToolbarPosition:

(UIBarPosition)topOrBottom;

ToolBar方式切换视图

1、创建工程:

运行Xcode,新建一个EmptyApplication,名称为MultiView,其他设置如下图:

2、创建3个ViewController:

依次选择File—New—NewFile,打开如下窗口:

找到UIViewControllersubclass并单击Next,打开下面的窗口:

输入名称RootViewController,并且保证Subclassof选择UIViewController,下面的两个选框都不选;按照同样的步骤新建两个ViewController,名称分别是FirstViewController和SecondViewController。

建好后,在ProjectNavigation中显示文件如下:

3、为三个ViewController创建.xib文件:

依次选择File—New—NewFile,打开如下窗口:

在左边选UserInterface,右边选View,单击Next,在新窗口中的DeviceFamily中选择iPhone,单击Next,打开如下窗口:

输入名称RootView,单击Create,创建了一个.xib文件。

用同样的方法再创建两个.xib,名称分别是FirstView和SecondView。

4、修改AppDelegate:

4.1单击AppDelegate.h,在其中添加代码,在@interface之前添加@classRootViewController;在@end之前添加@property(strong,nonatomic)RootViewController*rootViewController;添加之后的代码如下:

1

2

3

4

5

6

#import

@classRootViewController;

@interfaceAppDelegate:

UIResponder

@property(strong,nonatomic)UIWindow*window;

@property(strong,nonatomic)RootViewController*rootViewController;

@end

4.2单击AppDelegate.m,修改其代码。

在@implementation之前添加#import"RootViewController.h",在@implementation之后添加@synthesizerootViewController;然后修改didFinishLaunchingWithOptions方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

-(BOOL)application:

(UIApplication*)applicationdidFinishLaunchingWithOptions:

(NSDictionary*)launchOptions

{

self.window=[[UIWindowalloc]initWithFrame:

[[UIScreenmainScreen]bounds]];

//Overridepointforcustomizationafterapplicationlaunch.

self.rootViewController=[[RootViewControlleralloc]initWithNibName:

@"RootView"bundle:

nil];

UIView*rootView=self.rootViewController.view;

CGRectrootViewFrame=rootView.frame;

rootViewFrame.origin.y+=[UIApplicationsharedApplication].statusBarFrame.size.height;

rootView.frame=rootViewFrame;

[self.windowaddSubview:

rootView];

self.window.backgroundColor=[UIColorwhiteColor];

[self.windowmakeKeyAndVisible];

returnYES;

}

复制代码代码如下:

self.rootViewController=[[RootViewControlleralloc]initWithNibName:

@"RootView"bundle:

nil];

这行代码用于从RootView.xib文件中初始化rootViewController,注意initWithNibName:

@"RootView"中不要后缀名.xib

复制代码代码如下:

rootViewFrame.origin.y+=[UIApplicationsharedApplication].statusBarFrame.size.height;

使得RootViewController的视图不会被状态栏挡住

5、修改RootViewController.h:

单击RootViewController.h,在其中添加两个属性和一个方法,如下:

1

2

3

4

5

6

7

8

#import

@classFirstViewController;

@classSecondViewController;

@interfaceRootViewController:

UIViewController

@property(strong,nonatomic)FirstViewController*firstViewController;

@property(strong,nonatomic)SecondViewController*secondViewController;

-(IBAction)switchViews:

(id)sender;

@end

6、打开RootView.xib,在坐边选择File'sOwner,在右边打开IdentityInspector,在Class下拉菜单选择RootViewController:

这样,我们

就可以从RootView.xib文件向RootViewController创建Outlet和Action了。

7、为RootView.xib添加工具栏:

打开RootView.xib,拖一个ToolBar到视图上,双击ToolBar上的按钮,修改其名称为SwitchViews:

8、添加Action映射:

选中SwitchViews按钮,按住Control,拖到File'sOwner,松开鼠标后选择switchViews方法:

9、选择File'sOwner,按住Control键,拖到View,松开鼠标,选择view:

10、修改RootViewController.m:

打开RootViewController.m文件,在@implementation之前添加代码:

1

2

#import"FirstViewController.h"

#import"SecondViewController.h"

在@implementation之后添加代码:

1

2

@synthesizefirstViewController;

@synthesizesecondViewController;

接下来修改viewDidLoad方法,这个方法默认是被注释掉的,先去掉其周围的注释符,然后修改其代码如下:

1

2

3

4

5

6

-(void)viewDidLoad

{

self.firstViewController=[[FirstViewControlleralloc]initWithNibName:

@"FirstView"bundle:

nil];

[self.viewinsertSubview:

firstViewController.viewatIndex:

0];

[superviewDidLoad];

}

添加switchViews方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

-(IBAction)switchViews:

(id)sender{

if(self.secondViewController.view.superview==nil){

if(self.secondViewController==nil){

self.secondViewController=[[SecondViewControlleralloc]initWithNibName:

@"SecondView"bundle:

nil];

}

[firstViewController.viewremoveFromSuperview];

[self.viewinsertSubview:

self.secondViewController.viewatIndex:

0];

}else{

if(self.firstViewController==nil){

self.firstViewController=

[[FirstViewControlleralloc]initWithNibName:

@"FirstView"bundle:

nil];

}

[secondViewController.viewremoveFromSuperview];

[self.viewinsertSubview:

self.firstViewController.viewatIndex:

0];

}

}

修改didReceiveMemoryWarning方法:

1

2

3

4

5

6

7

8

9

-(void)didReceiveMemoryWarning

{

[superdidReceiveMemoryWarning];

if(self.firstViewCsuperview==nil){

self.firstViewController=nil;

}else{

self.secondViewController=nil;

}

}

11、打开FirstView.xib文件,选择左边的File'sOwner,然后在IdentityInspector中选择Class为FirstViewController;然后按住Control键从File'sOwner图标拖到View,在弹出的菜单选择view。

为SecondView.xib进行同样的操作,不过Class选择为SecondViewController。

12、打开FirstView.xib文件,选择View,打开AttributeInspector,进行如下设置:

对SecondView.xib进行同样设置,不过背景颜色设成红色。

13、此时运行程序,你会看见刚启动的时候,程序显示的绿色背景,轻触SwitchViews按钮后,背景变成了红色。

不断轻触按钮,背景不断变换。

14、添加切换背景的动画效果:

打开RootViewController.m,修改其中的switchViews方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

-(IBAction)switchViews:

(id)sender{

[UIViewbeginAnimations:

@"ViewFlip"context:

nil];

[UIViewsetAnimationDuration:

1.25];

[UIViewsetAnimationCurve:

UIViewAnimationCurveEaseInOut];

if(self.secondViewController.view.superview==nil){

if(self.secondViewController==nil){

self.secondViewController=[[SecondViewControlleralloc]initWithNibName:

@"SecondView"bundle:

nil];

}

[UIViewsetAnimationTransition:

UIViewAnimationTransitionFlipFromRightforView:

self.viewcache:

YES];

[self.firstViewController.viewremoveFromSuperview];

[self.viewinsertSubview:

self.secondViewController.viewatIndex:

0];

}else{

if(self.firstViewController==nil){

self.firstViewController=[[FirstViewControlleralloc]initWithNibName:

@"FirstView"bundle:

nil];

}

[UIViewsetAnimationTransition:

UIViewAnimationTransitionCurlUpforView:

self.viewcache:

YES];

[self.secondViewController.viewremoveFromSuperview];

[self.viewinsertSubview:

self.firstViewController.viewatIndex:

0];

}

[UIViewcommitAnimations];

}

注意四个表示切换效果的常量:

1

2

3

4

UIViewAnimationTransitionFlipFromLeft

UIViewAnimationTransitionFlipFromRight

UIViewAnimationTransitionCurlDown

UIViewAnimationTransitionCurlUp

分别表示从左翻转、从右翻转、向下卷、向上卷。

运行后翻页效果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1