天天看点

UIToolBar

UIToolBar

一、官方文档

1.介绍

toolbar控制一个或多个button的显示;当点击时,toolbar可以呈现短暂的高亮或者无变化。UIToolbar是我们经常用的控件之一,例如:navigation bar 上面加一个UIToolbar ,或者 view 的底部加一个UIToolbar,或者在键盘的上面加一个UIToolbar等等。(在UINavigationController导航控制器中存在UIToolBar的,而且默认时被隐藏的。需要设置self.navigationController.toolbarHidden = NO;(建议最好在viewWillApper:设置)然后创建UIBarButtonItem,需要用到什么类型就加什么,系统自带了许多样式让你选择(还是自定义好看,符合国人的使用)

(1) 简单使用:使用UIBarButtonItem创建toolbar的项(UIBarButtonItem用来创建UIToolbar或UINavigationBar上的button),使用setItems:animated:向toolbar中添加toolbar items。

toolbar的normal和highlight状态的图片通过iamge属性设置,ios7后,可以通过tintColor设置图片的颜色(如果你需要单选按钮样式,使用UITabBar)

配置toolbar items:

items显示在toolbar上的项

-setItems:animated:通过动画改变toolbar上的项

(2)设置toolbar的外观

可以使用appearance代理([UIToolbar appearance]),设置所有的toolbar;也可以使用UIToolbar的实例来设置toolbar,当一个属性依赖bar的方向时,应该指明UIBarMetricsCompact为UIBarMetricsDefault

定制toolbar外观

barStyle指明toolbar外观的样式,是枚举值

UIBarStyleDefault

UIBarStyleBlack

UIBarStyleBlackOpaque

UIBarStyleBlackTranslucent

barTintColor指明toolba背景的颜色

tintColor应用于toolbar上bar button的颜色

translucent一个bool值,表明是否toolbar为伴透明的

  • (UIImage *)backgroundImageForToolbarPosition:(UIBarPosition)topOrBottom

    barMetrics:(UIBarMetrics)barMetrics;返回toolbar使用的背景图片

  • (void)setBackgroundImage:(UIImage *)backgroundImage

    forToolbarPosition:(UIBarPosition)topOrBottom

    barMetrics:(UIBarMetrics)barMetrics;设置toolbar使用的背景图片

  • (UIImage *)shadowImageForToolbarPosition:(UIBarPosition)topOrBottom;返回toolbar阴影的图片
  • (void)setShadowImage:(UIImage *)shadowImage

    forToolbarPosition:(UIBarPosition)topOrBottom;设置toolbar阴影的图片

(3)设置代理

delegate

(4)指明toolbar的位置UIToolbarPosition:

UIToolbarPositionAny = 0,

UIToolbarPositionBottom = 1,

UIToolbarPositionTop = 2

二扩展使用

1.在键盘的inputAccessoryView上添加UIToolBar,通常来回收键盘

UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 30)];

[topView setBarStyle:UIBarStyleDefault];

UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

btn.frame = CGRectMake(4, 5, 40, 25);

[btn setTitleColor:self.tintColor forState:UIControlStateNormal];

[btn addTarget:self action:@selector(dismissKeyBoard) forControlEvents:UIControlEventTouchUpInside];

[btn setTitle:@”完成” forState:UIControlStateNormal];

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]initWithCustomView:btn];

NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,doneBtn,nil];

[topView setItems:buttonsArray];

[self.tf setInputAccessoryView:topView];

2.实现毛玻璃效果

设置一个UIImageView,在创建一个toolbar,放在UIimagView上面