使用宏分别定义文本条目,图像条目,系统条目和定制视图条目,这些宏都提供一个可置入UIToolBar 的自动发布UIBarButtonItem。

#define COOKBOOK_PURPLE_COLOR    [UIColor colorWithRed:0.20392f green:0.19607f blue:0.61176f alpha:1.0f]
#define BARBUTTON(TITLE, SELECTOR)     [[[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButtonItemStylePlain target:self action:SELECTOR] autorelease]
#define IMGBARBUTTON(IMAGE, SELECTOR) [[[UIBarButtonItem alloc] initWithImage:IMAGE style:UIBarButtonItemStylePlain target:self action:SELECTOR] autorelease]
#define SYSBARBUTTON(ITEM, SELECTOR) [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:ITEM target:self action:SELECTOR] autorelease]
#define CUSTOMBARBUTTON(VIEW) [[[UIBarButtonItem alloc] initWithCustomView:VIEW] autorelease]

//创建工具栏

UIToolbar *tb = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
    tb.center = CGPointMake(160.0f, 200.0f);
    NSMutableArray *tbitems = [NSMutableArray array];

[tbitems addObject:BARBUTTON(@"Title", @selector(action))];
    [tbitems addObject:SYSBARBUTTON(UIBarButtonSystemItemAdd, @selector(action))];
    [tbitems addObject:IMGBARBUTTON([UIImage imageNamed:@"TBUmbrella.png"], @selector(action))];
    [tbitems addObject:CUSTOMBARBUTTON([[[UISwitch alloc] init] autorelease])];
    [tbitems addObject:SYSBARBUTTON(UIBarButtonSystemItemFlexibleSpace, nil)];
    [tbitems addObject:IMGBARBUTTON([UIImage imageNamed:@"TBPuzzle.png"], @selector(action))];
    
    // Add fixed 20 pixel width
    UIBarButtonItem *bbi = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil] autorelease];
    bbi.width = 20.0f;
    [tbitems addObject:bbi];
    
    tb.items = tbitems;
    [self.view addSubview:tb];
    [tb release];

工具栏提示:

处理工具栏是,使用一些小技巧可能会很有用。

1、固定空间可以拥有宽度----在所有UIBarButtonITem中,只有 UIBarBuutonSystemItemFixedSpace 条目可以被分配一个宽度,因此,创建空间条目、设置其宽度,然后在将其添加到条目列中。

2、使用一个灵活空间进行左对齐或右对齐----在条目列表中开始添加一个 UIBarButtonSystemITemFlexibleSpace 会使所有剩余条目右对齐。在末尾添加一个,则左对齐。使用两个 UIBarButtonSystemItemFlexibleSpace ,一个添加在开头,一个添加在末尾,会使剩余条目居中对齐。

3、考虑遗漏的条目----根据上下文隐藏栏按钮条目时,不要只使用灵活的空间分配来除去条目。而应使用一个与条目原来大小匹配的固定宽度的空间代替该条目。这样做会在条目消失前后保存布局并保持其他所有图标位置不变。

ios 构建工具栏UIToolBar相关推荐

  1. 阿里配管专家解读:如何最优成本搭建非标准的iOS构建集群

    作者简介:董必胜(叔大),阿里巴巴配置管理专家,负责集团.蚂蚁的移动端构建,负责研发协同平台RDC无线. 背景:在移动物联网大潮中iOS构建的重要性日益突出,如何能提供稳定的iOS构建服务?中大型的企 ...

  2. socket.io-client-cpp ios 构建

    socket.io-client-cpp ios 构建 从demo里获取到sioclient.a静态库 Use sioclient as static lib on iOS There's a tar ...

  3. 关于iOS构建版本提交iTunes后,一直不出现,没加号的解决方案

    关于iOS构建版本提交iTunes后,一直不出现,没加号的解决方案 参考文章: (1)关于iOS构建版本提交iTunes后,一直不出现,没加号的解决方案 (2)https://www.cnblogs. ...

  4. linux 构建ios_为iOS构建本机编辑器

    linux 构建ios 序幕 (Prologue) I have always been fascinated with the great Open Source community that al ...

  5. ios 构建版本一直在处理中_iOS关于审核提交构建版本不显示问题集锦

    问题 最近提交审核上线的过程中遇到了一些很奇怪的问题,通过回溯整理,大致分了两大块: 1.通过XCode或者Appcation uploader 上传到app connect 中不显示构建版本问题 2 ...

  6. CI Weekly #22 | flow.ci 新版 iOS 构建流程的 4 大变化

    2019独角兽企业重金招聘Python工程师标准>>> 好久不见,最近 flow.ci 针对 iOS 项目重新设计了创建项目的流程,较之前相比有 4 个变化: 在创建项目阶段加入项目 ...

  7. cocos creator 打包ios 构建失败

    接了个广告的sdk,tradplus广告,构建过程中发现pod install 一直失败, 找了好久好久,纠结了好几天,没用过ios打包. 报错信息如下: -- Crash Report log in ...

  8. fastlane 进行 ios 构建

    雁过留声,人过留名,做过留博.这是一篇关于如何用fastlane进行ios打包等操作的流程小记. 1.fastlane 安装,自行移步百度,无非就是ruby环境问题,还有翻墙的问题,这里不再赘述. 2 ...

  9. ios 构建版本一直在处理中_iOS -打包上传成功,在构建版本一直刷不出来

    今天提交版本到appstore,构建版本一直不出来,等了一天也没有出来,其实就是权限问题,iOS13 来了,所以面临的问题随之而来,苹果给邮箱发了这段话: Dear Developer,We iden ...

最新文章

  1. 【推荐系统】深入理解YouTube推荐系统算法
  2. 总结一些常用Android adb 命令
  3. js函数提示 vscode_工欲善其事,必先利其器,VSCode高效插件
  4. formidable处理提交的表单或文件的简单介绍
  5. Pytorch(1)-内置/自己设计的损失函数使用
  6. 背包问题的二进制优化
  7. mysql如何给text字段添加索引_MySQL 是如何利用索引的
  8. js 串口通信mscomm接收undefined_VB串口通信应用开发入门知识讲解
  9. 多线程(二)--同步及死锁
  10. 用LM方法的matlab求解,matlab中LM算法
  11. Java编程基础知识(一)
  12. App测试流程及测试点
  13. 当我们做实验的时候,我们在做什么?
  14. python-pygame实现飞机大战-2-添加敌机以及碰撞爆炸
  15. Java ist reverse_GKCTF 2020 Reverse Writeup
  16. fh admin mysql版本_在用mysql-front的时候遇到显示:程序注册时间到期程序将被限制模式下运行。...
  17. mongodb基础操作之聚合操作、索引优化
  18. 基于 Flex+GoogleMap+PHP 的远程实时数据监测系统
  19. 数据整合基础知识介绍
  20. 团队编程——web应用之人事管理系统

热门文章

  1. PluginOK中间件小程序家族不断壮大
  2. 用VS写Vericut仿真里面的刀具.tls文件
  3. 微信扫码支付代理怎么办理?有多大发展空间
  4. 江苏大学计算机科学与技术学院,杨利霞-江苏大学计算机科学与通信工程学院...
  5. 使用idea如何把代码推送到两个git仓库
  6. 打造超级个体,她如何完成逆袭
  7. 洛谷多校补题 5 B
  8. wireshark过滤捕获某些网站
  9. Linux系统软件包的管理
  10. centos8挂载exfat格式的u盘,u盘ntfs和exfat