IOS-导航风格:BarButton创建
2015-11-16 16:21
281 查看
一个导航风格(风格属性)栏可以容纳很多种不同类型的对象。你刚刚学过了如何将一个分段控件作为标题试图加入到导航栏中,来向用户呈现一组子类别。 另一个用于导航栏的流行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
自定义视图按钮
与导航栏类似,按钮也可以按照自定义视图类来绘制,这样你就可以将任何一种其他类型的视图对象作为按钮来显示:
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
在显示工具栏之前,你必须首先创建打算在工具栏上显示的按钮。你需要用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集成百度地图SDK2.9.1常见问题
- IOS 解决.dylib找不到的问题
- fir.im Weekly - iOS 保持界面流畅的技巧
- iOS 9打印-canOpenURL: failed for URL
- fir.im Weekly - iOS 保持界面流畅的技巧
- ios 自动布局
- IOS开发辅助小工具
- IOS thread1:exc_bad)access(code=exc_1386_gpflt)错误
- ios sourecTree
- iOS 内存分区情况
- iOS NSPredicate用法
- iOS打电话、发短信、发邮件功能开发
- iOS抓包
- iOS沙盒路径的查看和使用
- IOS 蓝牙相关-连接外设的代码实现(2)
- Text Kit学习(入门和进阶)
- IOS 蓝牙相关-基础知识(1)
- iOS由ImageIO.framework实现gif的系统解码
- iOS:GIF图片的预览以及生成
- iOS定位和地理坐标类型解释