一个导航风格(风格属性)栏可以容纳很多种不同类型的对象。你刚刚学过了如何将一个分段控件作为标题试图加入到导航栏中,来向用户呈现一组子类别。 另一个用于导航栏的流行UI组件是UIToolbar对象。工具栏可以容纳一组自定义的按钮,其中可以包括标准系统按钮,例如书签和搜索等按钮。许多预置 的iPhone应用程序,例如Safari和Mail,都使用工具栏来对导航栏的功能进行扩展。
在显示工具栏之前,你必须首先创建打算在工具栏上显示的按钮。你需要用Cocoa的NSMutableArray方法,将每个按钮都添加到一个数组中:
NSMutableArray *buttons = [ [ NSMutableArray alloc ] init ];图像按钮与文字按钮
最常见类型的按钮显示的要么是图像,要么就是文字。这两种类型的按钮都可以作为UIbarbuttonItem对象来创建。不过,你得用不同的函数 来初始化这两种按钮。初始化图像按钮要用initWithImage方法,而初始化标准的文字按钮则使用initWithTitle方法:
UIbarbuttonItem *buttonImage = [ [ UIbarbuttonItem alloc ] initWithImage: [ UIImage imagenamed: @"button.png" ] style: UIbarbuttonItemStylePlain target: self action: @selector(mySelector:) ]; UIbarbuttonItem *buttonText = [ [ UIbarbuttonItem alloc ] initWithTitle: @"button" style: UIbarbuttonItemStylebordered target: self action: @selector(mySelector:) ];系统按钮
除了图像与文字按钮,还有一个小型的系统按钮库,可以创建那些在许多应用程序中都可以见到的标准化的预定义按钮。系统按钮也是UIbarbuttonItem对象,可以通过类的initWithbarbuttonSystemItem方法来创建。如下例:
UIbarbuttonItem *myBookmarks = [ [ UIbarbuttonItem alloc ] initWithbarbuttonSystemItem: UIbarbuttonSystemItemBookmarks target: self action: @selector(mySelector:) ];表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 | 图像按钮,上有一个快进图标 |
自定义视图按钮
与导航栏类似,按钮也可以按照自定义视图类来绘制,这样你就可以将任何一种其他类型的视图对象作为按钮来显示:
UIbarbuttonItem *custombutton = [ [ UIbarbuttonItem alloc ] initWithCustomVIEw: myVIEw ];创建工具栏
将所有希望显示出来的按钮都添加到前面创建的buttons数组:
[ buttons addobject: buttonImage ]; [ buttons addobject: buttonText ]; [ buttons addobject: myBookmarks ];下一步,创建一个UIToolbar对象,并将你的按钮数组赋予工具栏作为项目列表:
UIToolbar *toolbar = [ [ UIToolbar alloc ] init ]; [ toolbar setItems: buttons animated: YES ];最后,将你的导航栏的标题视图替换为新创建的工具栏,就像替换成分段控件一样:
self.navigationItem.TitleVIEw = toolbar;当导航栏显示出来时,工具栏就会出现在它的中央。
调整大小
工具栏会对加入的按钮套用默认大小。如果你希望调整工具栏,让它可以更干净利落地适应导航栏的大小,可以用sizetoFit方法:
[ toolbar sizetoFit ];工具栏的风格
就像许多其他基于视图的对象一样,UIToolbar也包含有一个风格属性,名为barStyle。这个属性可以用来调整工具栏的风格,令其与你为导航栏定义的风格相匹配:
toolbar.barStyle = UIbarStyleDefault;可以将工具栏的风格设置为三种标准风格主题之一,这些主题也为大多数其他类型的栏状对象所使用,如表3-3所示。
表3-3
描 述 | |
UIbarStyleDefault | 默认风格;灰色背景、白色文字 |
UIbarStyleBlackOpaque | 纯黑色背景、白色文字 |
UIbarStyleBlackTranslucent | 透明黑色背景、白色文字 |
以上是内存溢出为你收集整理的IOS-导航风格:BarButton创建全部内容,希望文章能够帮你解决IOS-导航风格:BarButton创建所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)