UIBarButtonItem全局和局部修改

有时侯你并不想把导航条左侧按钮外观字体或背景全部用以下代码来更改

[plain]

UIBarButtonItem *rightItem = [YBarButtonItem barButtonWithStyle:YBarButtonStyleRoundedRectangle

Title:@"Save"

Action:@selector(saveButtonClicked)

Delegate:self];

self.navigationItem.leftBarButtonItem = rightItem;

这里就有个方法可以进行全局或局部的修改:

iOS5提供了一个比较强大的工具UIAppearance,可以轻松的统一你的界面,它提供如下两个方法:

+ (id)appearance

+ (id)appearanceWhenContainedIn:(Class <>)ContainerClass,...

第一个方法是统一全部改,比如你设置UINavBar的tintColor,你可以这样写:[[UINavigationBar appearance] setTintColor:myColor];

第二个方法是当出现在某个类的出现时候才会改变:例如:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil] setTintColor:myPopoverNavBarColor];

1.修改背景:

[plain]

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:leftButton

forState:0

barMetrics:UIBarMetricsDefault];

2.修改字体,阴影,字体颜色

[plain]

NSDictionary* textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:

BAR_BUTTON_TITLE_TEXT_COLOR,UITextAttributeTextColor,

BAR_BUTTON_TITLE_FONT,UITextAttributeFont,

BAR_BUTTON_TITLE_SHADOW_COLOR,UITextAttributeTextShadowColor,

[NSValue valueWithCGSize:CGSizeMake(1, 1)],UITextAttributeTextShadowOffset,

nil];

[[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:0];

3,修改UIBarButtonItem中文字的位置:

[plain]

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(2, -1)

forBarMetrics:UIBarMetricsDefault];

时间: 2024-10-01 04:29:16

UIBarButtonItem全局和局部修改的相关文章

UIBarButtonItem关于全局修改,局部修改

全局修改:把所有UIBarButtonItem(或者一个控件)设为同一风格. 局部修改:根据一定条件把一部分UIBarButtonItem(或者一个控件)设为同一风格 有时侯你想把导航条左侧的所有按钮的外观,字体设置为同一风格,但你并不想把导航条左侧按钮外观字体或背景全部用以下代码来更改,如果这样改,有两个UIBarButtonItem,你就要写两次,这样写代码过于赘余,苹果提供了更好的方法统一设置. UIBarButtonItem *rightItem = [YBarButtonItem ba

四种不同对象的生存方式(栈、堆、全局、局部静态)

[结果分析,引申出四种对象]: 生存方式 执行时机 消亡时机 全局(静态)对象 全局静态存储区global 比程序进入点更早,构造函数先被执行: 程序结束前,其析构函数被执行. 局部静态对象 局部静态存储区local static 在对象诞生时,其构造函数被执行.(注意,此处只会有一个实例产生,而且固定在内存上(非stack也非heap),它的构造函数在控制权第一次移转到其声明处时被调用. 程序将结束时(此对象因而将遭致毁灭)其析构函数才被执行,但比全局对象的析构函数更早一步执行. 局部对象 栈

[ python ] 全局和局部作用域变量的引用

全局与局部变量的引用 (a)locals(b)globals 这里还需要在补充2个关键字一起比较学习,关键字:(c)nonlocal(d)global locals 和 globals locals: 打印当前可用的变量的字典    globals: 返回一个描述当前全局变量的字典 提示:locals 是获取当前的可用变量,而 globals 是获取全局的变量 在使用 locals() 和 globals() 会出现以下三种表现形式: (1)当locals 和 globals 都在全局作用域的时

Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合

Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的数据进行校验 3.保留上次输入内容 二丶使用form组件实现注册功能 from django import forms # 导入forms组件 # 按照Django form组件的要求自己写一个类 class RegForm(forms.Form): # 继承Form name = forms.Ch

全局和局部函数

全局和局部函数   全局和局部函数是为了支持16bit的程序移植,或者是为了维护程序对16bit Windows的兼容性.从32bit Windows起,全局函数和局部函数的实现是封装一个相关的堆函数,这个堆函数用进程的默认堆的句柄.因此全局和局部函数比其它内存管理函数开销更大. 堆函数比全局和局部函数提供更多的特征和控制.新的程序应该使用堆函数除非文档特别地指出应该使用全局或者局部函数.例如,一些Windows程序必须使用LocalFree来释放分配的内存,并且全局函数在DDE(动态数据交换)

原型的实时局部修改与全部重写的区别(原型的动态性)

1 //代码1-原型原理: 2 function Student(){ 3 //创建了一个空的构造函数 4 } 5 6 //注意:创建了函数Student的同时Student.prototype原型对象就立即产生了 7 8 var person1 = new Student();//实例person1默认都会从Student.prototype 继承属性与方法 9 var person2 = new Student();//实例person2默认都会从Student.prototype 继承属性

全局和局部内存管理

全局和局部内存管理 转自:关于内存函数GlobalLock(),GlobalAlloc(),GlobalUnLock()用法 1.为什么要用GlobalLock()函数 C/C++ code HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize); //给图片分配全局内存     void *pImageMemory=GlobalLock(hImageMemory); //锁定内存     DWORD dwReadedSize; /

elementUI 弹窗组件全局和局部 弹入弹出动画效果实现

前言:element  <el-dialog> 标签有自带的动画效果,要想自定义动画效果,需要覆盖自带效果,分为两类: 1.全局设置 如要设置左侧或上下弹出,只需全局样式 处粘贴如下代码: @keyframes dialog-fade-in { 0% { transform: translate3d(100%,0 , 0); opacity: 0; } 100% { transform: translate3d(0, 0, 0); opacity: 1; } } @keyframes dial

JS全局与局部作用域解析、作用域链(下)

作用域: 域:空间.范围.区域…… 域分为:全局 一般在script标签范围内定义的变量.函数,我们习惯性地叫做全局变量.全局函数 一个script就是一个域,只要是一个域,就会发生:预解析.逐行解读代码 页面上可以写多个script 举个栗子1: <script> alert(a); </script> <script> var a = 1; </script> JS 会一块一块进行解析.执行,是单线程的 执行第一块时,会先在那个仓库找a:找不到a,就报错