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上面