ios UIBarButtonItem类
来源:互联网 发布:黑马程序员 java教程 编辑:程序博客网 时间:2024/05/22 06:09
UINavigationItem类
系统会用UINavigationItem类的对象来生成导航栏的内容,该类存放了一些与这种对象有关的信息。UINavigationItem的属性包括导航栏左侧与右侧的UIBarButtonItem、显示在导航栏中的标题、用来显示该标题的视图以及用于从当前视图返回到上一个视图的Back按钮。
通过这个类,可以把按钮、文本及其他UI对象添加到三个关键位置上,这三个位置分别是导航栏的左侧、中心及右侧。一般情况下,我们会在右侧放置普通的按钮,在中间写上一些文本,并在左侧放置Back按钮。但开发者并不应该局限于这种布局。我们也可以在左、中、右这三个位置上添加自定义的控件。比方说,可以把搜索用的文本框、分段选择控件、工具栏或者图片等放在导航栏中间。而且还可以把许多UIBarButtonItem放在数组里,并添加到导航栏左右两侧。UINavigationItem修改起来是非常容易的。
1、标题与后退按钮
导航栏中间的标题区是可以定制的。可以像下面这样给navigationItem设置标题:
self.navigationItem.title = @"My Title"
上面这行代码与直接设置视图控制器的title属性是等效的。要想定制标题,最简单的办法应该是修改子视图控制器的title属性,而不是去修改navigationItem:
self.title = @"Hello";
导航控制器会用这个title属性来构建下一个Back按钮的go back文本。如果当前控制器的标题叫作“Hello”,而开发者又向导航栈里推入了一个新的控制器,那么,新控制器Back按钮上面的文本也会是“Hello”。
还可以把文本形式的标题改为控件之类的自定义视图。下面这段代码会添加自定义的分段选择控件,不过我们也可以添加图像视图、步进控件等其他东西:
self.navigationItem.titleView = [[UISegmentedControl alloc] initWithItems:items];
2、宏
由于创建UIBarButtonItem是一种重复性非常高的任务,所以我们可以用宏来简化它。下面这个宏能够创建基本的按钮项:
#define BARBUTTON_TARGET(TITLE,SELECTOR) [[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButtonItemStylePlain target:self action:SELECTOR]
若想调用上面这个宏,只需给出标题和选择子就可以了。由于每次调用宏的时候都只需指定标题和选择子这两条信息,所以这种写法要比直接创建UIBarButtonItem更容易读懂:
self.navigationItem.rightBarButtonItem = BARBUTTON(@"Push",@selector(pusht:));
该版本的宏设置目标就是"self",这很符合常见的用法,不过,也可以对此稍加改编。下面这个宏就可以令开发者手工指定目标:
#define BARBUTTON_TARGET(TITLE,TARGET,SELECTOR) [[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButtonItemStylePlain target:TARGET action:SELECTOR]
UIBarButtonItem的用法会随着应用程序的特定需求而有变化。我们很容易就能创建出一些宏,令其用苹果公司所提供的系统控件来制作UIBarButtonItem,或是令其根据图片资源来制作带有图片的UIBarButtonItem,还有令其创建自定义的视图,并在其中嵌入别的控件以及非UIBarButtonItem式的按钮,然后用这种自定义的视图来制作UIBarButtonItem。
取自iOS核心开发手册
- ios UIBarButtonItem类
- iOS中的UIBarButtonItem使用
- iOS:自定义UIBarButtonItem
- ios UIBarButtonItem去除标题
- iOS navigation UIBarButtonItem 风格
- [iOS]修改UIBarButtonItem文字大小
- iOS- 11设置导航条(扩展类UIBarButtonItem)
- ios学习之 初识UIBarButtonItem
- iOS 修改UIBarButtonItem title 字体大小
- iOS不断旋转的UIBarButtonItem
- iOS 修改UIBarButtonItem title 字体大小
- UIBarButtonItem
- UIBarButtonItem
- UIBarbuttonItem
- UIBarButtonItem
- 如何iOS更改UIBarButtonItem的文本颜色
- IOS 设置UIToolbar的UIBarButtonItem的间距
- IOS 返回事件 UIBarButtonItem (一) 自定义backBarButtonItem
- vim配置
- 如何长时间精神专注
- MFC的单文档视图结构(摘录)
- 开博记事
- Spring常用注解
- ios UIBarButtonItem类
- mysql 开启远程连接访问
- 报表的导出
- Android布局TextView居中设置方法
- 深度测试: LayaAir H5游戏引擎裸跑性能超越Unity3D
- mysql的in查询与union all 查询
- 第13周项目2-Kruskal算法的验证
- 使用FileObserver对sdcard文件或文件夹监控
- 关于SQL中使用select sum查询结果为NULL的解决办法