三种项目栏总结:

工具栏:UIToolBar
导航栏:UINavigationBar
标签栏:UITabBar
 
UIToolBar的按钮单元为:UIBarButtonItem
UINavigationBar的按钮单元为:UINavigationItem
UITabBar的按钮单元为:UITabBarItem
 

共同属性和方法:

@property(nonatomic,copy)   NSArray   *items;                    //按钮单元数组

- (void)setItems:(NSArray *)items animated:(BOOL)animated;    //将按钮单元全部设置到项目栏上

注意:一个导航栏控制器只对应一个导航栏,例外,它同时有一个工具栏,不过默认状态下,它是隐藏的,如果需要,需要把它打开。一个标签栏控制器仅仅只有一个标签栏。

导航栏,标签栏,工具栏和状态栏

状态栏

虽然您难以控制状态栏的内容,但是您可以定制它的外观,并在一定程度上定制它的行为。具体来说,您可以:设定网络活动指示器是否应该可见。如果您的应用程序正在执行的一项网络操作会持续几秒钟以上,则应该显示网络活动指示器。如果该网络操作将在几秒钟之内完成,则不必显示网络活动指示器,因为它很可能在用户意识到它的存在之前便消失了。(在您的代码中,您可以使用UIApplication的方法networkActivityIndicatorVisible来控制指示器的可见性。)指定状态栏的颜色。您可以选择灰色(默认的颜色),不透明的黑色或半透明的黑色(也就是α值为0.5的黑色)。图6-2显示了这些样式。(请注意,您应该在Info.plist文件中设置一个值来指定状态栏的样式;更多相关的信息请参考iPhone应用程序编程指南。)设置是否应该采用动画方式显示状态栏颜色的改变。(请注意,动画效果会使旧的状态栏一直滑出屏幕,最后消失,同时新的状态栏会滑动到相应的位置上。)

导航栏

导航栏上的按钮周围有一圈带边角的框。在iPhone OS中,这种样式被称为边框样式。导航栏的所有控件都要使用边框样式。事实上,即使您在导航栏上放置一个无格式(没有边框)的控件,它也会自动转换为有边框的样式。虽然您可以为所有在导航栏中显示的文本指定字体,但为了可读性,推荐您使用系统字体。当您使用适当的UIKit编程接口创建导航栏时,其标题将自动采用系统字体来显示。

工具栏

对于工具栏上显示的项,最好对其数目加以限制,这样用户可以轻松地点击到他们所需的项。我们向您推荐的用户界面元素的点击区域为44 x 44像素,因此,为用户提供五个以下的工具栏项是比较合理的。虽然您既可以在工具栏中使用带边框样式的按钮,也可以使用无格式按钮,但是您不要将这两种样式在同一工具栏中混合使用。

标签栏

标签栏绝不应该被当做工具栏使用,区别在于工具栏上的按钮是对当前模式下的元素起作用的.标签栏使用标签显示图标和文本,这些标签的宽度一致,并且都以黑色为背景。当一个标签被选中时,它的背景变亮,标签中的图像也会高亮显示。

注意: 不管设备的方向如何变化,标签栏不会改变它的不透明性和高度。

如果您的应用程序的标签栏包含的标签数目超过五个,iPhone OS会在标签栏上显示四个标签,并添加一个“更多”标签.

隐藏标签栏的方式有两种:

第一种方式:通过设置视图控制器的hidesBottomBarWhenPushed属性(在视图加载成功之前)

第二种方式: 通过重新设置标签栏控制器视图的的两个子视图的frame(视图显示成功之中)

最新文章

  1. Concepts:Request 和 Task
  2. 学习vue.js 第一天
  3. Visual Studio2015使用tinyfox2.x作为Owin Host调试教程
  4. 《JavaScript语言精粹》小记
  5. 深度浅出immutable.js
  6. HorizontalScrollView
  7. jsp与Servlet
  8. BZOJ4260: Codechef REBXOR
  9. careercup-数组和字符串1.1
  10. nginx搭建rtmp协议流媒体服务器总结
  11. Asp.net Identity框架
  12. 连接到docker 指定的一个容器中
  13. Centos下Nodejs+npm环境-部署记录
  14. week02 课堂作业
  15. eclipse maven打war包
  16. NSURLSession下载
  17. 【堆的启发式合并】【P5290】[十二省联考2019]春节十二响
  18. Solr的入门知识
  19. 改进动态设置query cache导致额外锁开销的问题分析及解决方法-mysql 5.5 以上版本
  20. openjudge-NOI 2.6-1759 最长上升子序列

热门文章

  1. [编程题] 合唱团 && 地闹逃脱
  2. Eolinker——前置用例的使用
  3. Go语言表组测试示例
  4. [loj#2566][BZOJ5333] [Sdoi2018]荣誉称号 树形dp
  5. 前端自动化gulp遇上es6从 无知到深爱
  6. 五十三 网络编程 TCP/IP简介
  7. Python 实现腾讯新闻抓取
  8. 初探python编码
  9. JS中==与===操作符的比较
  10. 使用Spring JdbcTemplate实现CLOB和BLOB的存取