IOS学习 IOS-导航风格:BarButton创建

一个导航风格(风格属性)栏可以容纳很多种不同类型的对象。你刚刚学过了如何将一个分段控件作为标题试图加入到导航栏中,来向用户呈现一组子类别。 另一个用于导航栏的流行UI组件是UIToolbar对象。工具栏可以容纳一组自定义的按钮,其中可以包括标准系统按钮,例如书签和搜索等按钮。许多预置 的iPhone应用程序,例如Safari和Mail,都使用工具栏来对导航栏的功能进行扩展。

在显示工具栏之前,你必须首先创建打算在工具栏上显示的按钮。你需要用Cocoa的NSMutableArray方法,将每个按钮都添加到一个数组中:

  1. NSMutableArray *buttons = [ [ NSMutableArray alloc ] init ]; 

图像按钮与文字按钮

最常见类型的按钮显示的要么是图像,要么就是文字。这两种类型的按钮都可以作为UIBarButtonItem对象来创建。不过,你得用不同的函数 来初始化这两种按钮。初始化图像按钮要用initWithImage方法,而初始化标准的文字按钮则使用initWithTitle方法:

  1. UIBarButtonItem *buttonImage = [ [ UIBarButtonItem alloc ] initWithImage:  
  2.         [ UIImage imageNamed: @"button.png" ]  
  3.         style: UIBarButtonItemStylePlain  
  4.         target: self  
  5.         action: @selector(mySelector:)  
  6. ];  
  7.  
  8. UIBarButtonItem *buttonText = [ [ UIBarButtonItem alloc ] initWithTitle:  
  9.         @"Button"  
  10.         style: UIBarButtonItemStyleBordered  
  11.         target: self  
  12.         action: @selector(mySelector:)  
  13. ]; 

系统按钮

除了图像与文字按钮,还有一个小型的系统按钮库,可以创建那些在许多应用程序中都可以见到的标准化的预定义按钮。系统按钮也是UIBarButtonItem对象,可以通过类的initWithBarButtonSystemItem方法来创建。如下例:

  1. UIBarButtonItem *myBookmarks = [ [ UIBarButtonItem alloc ]  
  2.         initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks  
  3.         target: self  
  4.         action: @selector(mySelector:)  
  5. ]; 

表3-2是目前支持的系统按钮,可以在UIBarButtonItem.h头文件中找到。

表3-2

按钮标识符

描    述

UIBarButtonSystemItemDone

蓝色文字按钮,标有“Done”

UIBarButtonSystemItemCancel

文字按钮,标有“Cancel”

UIBarButtonSystemItemEdit

文字按钮,标有“Edit”

UIBarButtonSystemItemSave

蓝色文字按钮,标有“Save”

UIBarButtonSystemItemAdd

图像按钮,上面有一个Å符号

UIBarButtonSystemItemFlexibleSpace

空白,占用空间大小可变

UIBarButtonSystemItemFixedSpace

空白占位符

UIBarButtonSystemItemCompose

图像按钮,上有一支笔和纸张

UIBarButtonSystemItemReply

图像按钮,上有一个回复箭头

UIBarButtonSystemItemAction

图像按钮,上有一个动作箭头

UIBarButtonSystemItemOrganize

图像按钮,上有一个文件夹以及向下箭头

UIBarButtonSystemItemBookmarks

图像按钮,上有书签图标

UIBarButtonSystemItemSearch

图像按钮,上有spotlight图标

UIBarButtonSystemItemRefresh

图像按钮,上有一个环形的刷新箭头

UIBarButtonSystemItemStop

图像按钮,上有一个停止记号X

UIBarButtonSystemItemCamera

图像按钮,上有一个照相机

UIBarButtonSystemItemTrash

图像按钮,上有一个垃圾桶

UIBarButtonSystemItemPlay

图像按钮,上有一个播放图标

UIBarButtonSystemItemPause

图像按钮,上有一个暂停图标

UIBarButtonSystemItemRewind

图像按钮,上有一个倒带图标

UIBarButtonSystemItemFastForward

图像按钮,上有一个快进图标


自定义视图按钮

与导航栏类似,按钮也可以按照自定义视图类来绘制,这样你就可以将任何一种其他类型的视图对象作为按钮来显示:

  1. UIBarButtonItem *customButton = [ [ UIBarButtonItem alloc ]  
  2.     initWithCustomView: myView ]; 

创建工具栏

将所有希望显示出来的按钮都添加到前面创建的buttons数组:

  1. [ buttons addObject: buttonImage ];  
  2. [ buttons addObject: buttonText ];  
  3. [ buttons addObject: myBookmarks ]; 

下一步,创建一个UIToolbar对象,并将你的按钮数组赋予工具栏作为项目列表:

  1. UIToolbar *toolbar = [ [ UIToolbar alloc ] init ];  
  2. [ toolbar setItems: buttons animated: YES ]; 

最后,将你的导航栏的标题视图替换为新创建的工具栏,就像替换成分段控件一样:

  1. self.navigationItem.titleView = toolbar; 

当导航栏显示出来时,工具栏就会出现在它的中央。

调整大小

工具栏会对加入的按钮套用默认大小。如果你希望调整工具栏,让它可以更干净利落地适应导航栏的大小,可以用sizeToFit方法:

  1. [ toolbar sizeToFit ]; 

工具栏的风格

就像许多其他基于视图的对象一样,UIToolbar也包含有一个风格属性,名为barStyle。这个属性可以用来调整工具栏的风格,令其与你为导航栏定义的风格相匹配:

  1. toolbar.barStyle = UIBarStyleDefault; 

可以将工具栏的风格设置为三种标准风格主题之一,这些主题也为大多数其他类型的栏状对象所使用,如表3-3所示。

表3-3

 

风    格

描    述

UIBarStyleDefault

默认风格;灰色背景、白色文字

UIBarStyleBlackOpaque

纯黑色背景、白色文字

UIBarStyleBlackTranslucent

透明黑色背景、白色文字

你可能感兴趣的:(ios,cocoa,action,工具,button,Safari)