iOS 自定义各类bar的属性

  在iOS应用开发中,经常需要为导航栏和标签栏设置相同的主题,一个一个去设置的话,就太麻烦了,可以通过对应用中所有的导航栏和标签栏同意设置背景、字体等属性。

  如:创建一个继承自“UINavigationController”的公共父类,然后应用中所有的NavigationController都继承UINavigationController,通过在UINavigationController类中的类方法

initialize中对导航栏属性进行设置,就会对项目中所有的导航栏控制器起作用

  示例代码如下:

 1 + (void)initialize
 2 {
 3
 4 #warning  可以通过设置UITabBar主题的方式来修改UITabBar中按钮的颜色
 5     UITabBar *tabBar = [UITabBar appearance];
 6     NSMutableDictionary *tabAttrs = [NSMutableDictionary dictionary];
 7     tabAttrs[UITextAttributeTextColor] = [UIColor orangeColor];
 8     [tabBar setTintColor:[UIColor orangeColor]];
 9
10     // 1 设置UINavigationBar
11     UINavigationBar *navBar = [UINavigationBar appearance];
12
13
14
15     //1.1 设置状态栏
16     [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
17
18     //1.2 设置背景图片
19         [navBar setBackgroundImage:[UIImage imageWithName:@"navigationbar_background"] forBarMetrics:UIBarMetricsDefault];
20
21
22     //1.3.设置字体
23     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
24     attrs[UITextAttributeTextColor] = [UIColor blackColor];
25     attrs[UITextAttributeTextShadowOffset] = [NSValue valueWithCGSize:CGSizeMake(0, 0)];
26     attrs[UITextAttributeFont] = [UIFont systemFontOfSize:20];
27
28     [navBar setTitleTextAttributes:attrs];
29
30     //2 设置导航条按钮主题
31     UIBarButtonItem *barItem = [UIBarButtonItem appearance];
32     //2.1 设置背景图
33     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
34     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_pushed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
35     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_disable"] forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
36     //2.2 设置字体属性
37     NSMutableDictionary *itemAttrs = [NSMutableDictionary dictionary];
38
39     itemAttrs[UITextAttributeTextColor] = iOS7 ? [UIColor orangeColor] : [UIColor blackColor];
40     itemAttrs[UITextAttributeTextShadowOffset] = [NSValue valueWithCGSize:CGSizeMake(0, 0)];
41     itemAttrs[UITextAttributeFont] = [UIFont systemFontOfSize:14];
42     [barItem setTitleTextAttributes:itemAttrs forState:UIControlStateNormal];
43 }
时间: 2024-10-20 17:47:31

iOS 自定义各类bar的属性的相关文章

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个

iOS自定义转场动画实战讲解

iOS自定义转场动画实战讲解 转场动画这事,说简单也简单,可以通过presentViewController:animated:completion:和dismissViewControllerAnimated:completion:这一组函数以模态视图的方式展现.隐藏视图.如果用到了navigationController,还可以调用pushViewController:animated:和popViewController这一组函数将新的视图控制器压栈.弹栈. 下图中所有转场动画都是自定义的

文顶顶 iOS开发UI篇—transframe属性(形变)

iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基于控件初始位置”的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建“基于transform参数”的形变

iOS自定义的UISwitch按钮

UISwitch开关控件 开关代替了点选框.开关是到目前为止用起来最简单的控件,不过仍然可以作一定程度的定制化. 一.创建 UISwitch* mySwitch = [[ UISwitchalloc]initWithFrame:CGRectMake(200.0,10.0,0.0,0.0)]; 是不是很奇怪,大小竟然是0.0×0.0,没错,系统会自动帮你决定最佳的尺寸,你自己写的尺寸会被忽略掉,你只要定义好相对父视图的位置就好了.默认尺寸为79 * 27. 二.显示控件 [ parrentView

iOS开发UI基础—transframe属性(形变)

iOS开发UI基础-transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建"基于控件初始位置"的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建"基于trans

iOS 自定义TabBarController zhuanzai

iOS 自定义TabBarController 一.自定义的思路 iOS中的TabBarController确实已经很强大了,大部分主流iOS应用都会采用.但是往往也不能满足全部的需求,因此需要自定义TabBar,自定义需要对系统的TabBar工作方式有很好的理解,自定义需要勇气. 自定义TabBar的原则:尽量利用系统自带TabBar,只改需要改的地方. 二.自定义TabBar的总体过程 1.先把自带的TabBar条给取消了 2.自己做一个view,上面放几个按钮,设定按钮的点击事件.并设置s

IOS 自定义UITableView

根据不同需要,需要使用tableview的结构,但是里面每一个cell,又需要自己的样式,所以学习了一下怎样把自己定义的cell加到tableview里面 首先要自己创建一个类,继承UITableViewCell,然后新建一个空的xib文件,并在class属性设置为对应的类名 代码部分: <pre name="code" class="objc"> #import "SettingViewController.h" #import &

IOS 自定义类型转换为Dictionary

IOS 自定义model如果要转换位json与服务器进行交互的时候,我把model数据类型先转换为了dictionary然后在进行json序列化. #import <objc/runtime.h> @implementation ConvertToCustomClass + (NSMutableArray *)convertCustomClassToDictionary:(NSMutableArray *)array{     NSMutableArray *customArray = [NS

IOS 自定义UIBUTTON 直接拖个xib 就能在button上显示多行文本 并且添加了点击的效果

拖个button继承一下  几行代码 就搞定 自用效果还行 IOS 自定义UIBUTTON 直接拖个xib 就能在button上显示多行文本 并且添加了点击的效果,布布扣,bubuko.com