工具栏
UIToolbar和UITabbar是不同的,UIToolbar是一个工具栏,可以让他需要的时候出现,不需要的时候消失,如同Safari浏览器下面那一条就是UIToolbar,微信下面的输入框也可以是一个UIToolbar。而UITabbarcontroller中的UITabbar是一个多个视图之间切换的控制器。
在iPhone中UIToolbar位于屏幕的底部,如果是竖屏布局,按钮最多不能超过5个,如果超过5个,那第5个按钮将变成“更多”按钮。
UIToolbar是UIBarButtonItem的容器。在UIBarButtonItem中,除了按钮,还有固定空格和可变空格,这样可以在各个按钮中间插入一个空格,以提升视觉效果。
下面这个Demo通过UIToolbar上的两个按钮控制视图中的Label。
界面如下:(在两个button中间添加了一个可变空格)
代码如下:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *label;
- (IBAction)save:(id)sender;
- (IBAction)open:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)save:(id)sender {
self.label.text = @"点击保存按钮";
}
- (IBAction)open:(id)sender {
self.label.text = @"点击打开按钮";
}
@end
本案例中的Save按钮比较特殊。它是iOS的标准按钮,属于苹果公司规定必须优先处理的按钮,否则可能被拒绝在App Store发布。其设置可以在属性检查器的Identifier属性中选择。
导航栏
导航栏和工具栏有一个共同的特性,其中都可以放置UIBarButtonItem,类似于UIButton。
导航栏主要用于导航,考虑的是整个应用,而工具栏作用于当前界面,考虑的是局部界面。
UINavigationController:导航控制器。
UINavigationBar:导航栏,它与导航控制器是一对一的关系。
UINavigationItem:导航栏项目,在每个界面中都会看到。它分为左、中、右3个区域。左侧区域一般放置一个返回按钮(设定属性是backBarButtonItem)或左按钮(设定属性是leftBarButtonItem);右侧区域一般放置一个右按钮(设定属性是rightBarButtonItem);中间区域是标题(设定属性是title)或者提示信息(设定属性是prompt)。导航栏与导航栏项目是一对多的关系。
UIBarButtonItem:与工具栏中的按钮一样,它是导航栏中的左右按钮。同时,通过这个类的initWithCustomView方法将自定义的多个按钮添加到一个Item中去,然后通过NavigationItem的leftBarButtonItems或者rightBarButtonItems方法在导航栏的一侧添加多个按钮。
下面是一个Demo:(也是通过两个按钮来控制Label的输出)
界面如下:
代码如下:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *label;
- (IBAction)save:(id)sender;
- (IBAction)add:(id)sender;
@end
@implementation ViewController
- (IBAction)save:(id)sender {
self.label.text = @"点击了保存";
}
- (IBAction)add:(id)sender {
self.label.text = @"点击了添加";
}
@end
NavigationBar默认高度为44。状态栏的高度为20,所以导航栏需要从高度为20的地方开始布局。
网友评论