继承关系:UIToolBar -> UIView -> UIResponder -> NSObject。

  toolBar是一个工具栏,用于显示一个或多个按钮。其按钮叫做toolBar items,是UIBarButtonItem对象。

@property(nonatomic, copy) NSArray *items   //在toolBar上显示的items。其中的每个item都是UIBarButtonItem对象。按照其在数组中的位置依次显示。该属性的任何变化不会产生动画效果。默认为nil值。

@property(nonatomic) UIBarStyle barStyle   // 确定toolBar的外观。默认值为UIBarStyleDefault,其为白色的背景和黑色的内容。

@property(nonatomic, retain) UIColor *barTintColor   // 指定toolBar的背景颜色。

@property(nonatomic, retain) UIColor *tintColor   // 指定item的颜色。

@property(nonatomic, assign, getter=isTranslucent) BOOL translucent   // 指明toolBar是否是透明的,默认为YES。

@property(nonatomic, assign) id<UIToolbarDelegate> delegate   //委托对象应该遵守UIToolBarDelegate协议。


- (void)setBackgroundImage:(UIImage *)backgroundImage forToolbarPosition:(UIBarPosition)topOrBottom barMetrics:(UIBarMetrics)barMetrics

// 设置图片作为toolBar的背景。

- (void)setItems:(NSArray *)items animated:(BOOL)animated   // 如果animated为YES,则当toolBar的items改变时,附带一些动画效果。

- (void)setShadowImage:(UIImage *)shadowImage forToolbarPosition:(UIBarPosition)topOrBottom   //如果想要使用自定义的shadow image,必须用setBackgroundImage:forToolbarPosition:barMetrics:方法设置自定义的背景图片。如果使用了默认的背景图片,不管shadowImage为什么,都使用默认的值。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
CGRect bound = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:bound];
self.window.rootViewController = [[UIViewController alloc] init]; CGRect toolBarRect = CGRectMake(, bound.size.height / , bound.size.width, );
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:toolBarRect]; UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1"
style:UIBarButtonItemStyleDone
target:self
action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2"
style:UIBarButtonItemStyleDone
target:self
action:nil];
// UIImage *image1 = [UIImage imageNamed:@"beauty0.jpg"];
// UIImage *image2 = [UIImage imageNamed:@"beauty3.jpg"];
// [toolBar setBackgroundImage:image1 forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];
// [toolBar setShadowImage:image2 forToolbarPosition:UIBarPositionBottom]; // toolBar.items = @[item1, item2];
[toolBar setItems:@[item1, item2] animated:YES];
toolBar.barTintColor = [UIColor redColor];
toolBar.tintColor = [UIColor whiteColor]; [self.window addSubview:toolBar];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

运行结果为:

UIToolBar - 官方文档的更多相关文章

  1. 【AutoMapper官方文档】DTO与Domin Model相互转换(上)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  2. 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

  3. 2DToolkit官方文档中文版打地鼠教程(二):设置摄像机

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

  4. 2DToolkit官方文档中文版打地鼠教程(一):初始设置

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

  5. 【AutoMapper官方文档】DTO与Domin Model相互转换(中)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  6. 【AutoMapper官方文档】DTO与Domin Model相互转换(下)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  7. Ionic2系列——Ionic 2 Guide 官方文档中文版

    最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情确实比较费精力,不知道什么时 ...

  8. Kotlin开发语言文档(官方文档)-- 目录

    开始阅读Kotlin官方文档.先上文档目录.有些内容还未阅读,有些目录标目翻译还需琢磨琢磨.后续再将具体内容的链接逐步加上. 文档链接:https://kotlinlang.org/docs/kotl ...

  9. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

随机推荐

  1. python+selenium+PhantomJS爬取网页动态加载内容

    一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...

  2. vue axios数据请求get、post方法的使用

    我们常用的有get方法以及post方法,下面简单的介绍一下这两种请求方法 vue中使用axios方法我们先安装axios这个方法 npm install --save axios 安装之后采用按需引入 ...

  3. IIS做反向代理重定向到NodeJS服务器

    1. 安装ARR 2. 建立虚拟目录并配置URL Rewrite 3. 启动ARR

  4. 性能优化7--App瘦身

    1. 前言 如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视.关于瘦身的原因,大概有以下几个方面: 对于用户来说,在功能差别不大的前提下,更小的Apk大小意味更少的流量消耗,也意味着更 ...

  5. SQL Server如何定位自定义标量函数被那个SQL调用次数最多浅析

    前阵子遇到一个很是棘手的问题,监控系统DPA发现某个自定义标量函数被调用的次数非常高,高到一个离谱的程度.然后在Troubleshooting这个问题的时候,确实遇到了一些问题让我很是纠结,下文是解决 ...

  6. STL之迭代器(iterator)

    1 头文件 所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件.不过有几种特别的迭代器,例如逆向迭代器,被定义于<iter ...

  7. 洗礼灵魂,修炼python(71)--爬虫篇—【转载】xpath/lxml模块,爬虫精髓讲解

    Xpath,lxml模块用法 转载的原因和前面的一样,我写的没别人写的好,所以我也不浪费时间了,直接转载这位崔庆才大佬的 原帖链接:传送门 以下为转载内容: --------------------- ...

  8. EOS智能合约开发(四):智能合约部署及调试(附编程示例)

    EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set ...

  9. c/c++ 重载运算符的思考

    c/c++ 重载运算符的思考 #include <iostream> using namespace std; class Imaginary{ public: Imaginary():r ...

  10. 浏览器本地数据存储解决方案以及cookie的坑

    本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...