iOS 7 教程:定制iOS 7中的导航栏和状态栏

本文提供的代码需要用Xcode 5来执行。如果你还在使用老版本的Xcode,那么在运行示例之前请将Xcode升级到Xcode 5。

iOS 7中默认的导航栏

在开始定制之前,我们先来看看iOS 7中默认导航栏的外观。通过Xcode用Single View Controller模板创建一个工程。然后将view controller嵌入到一个navigation controller中。

Xcode 5包含有iOS 6和iOS 7模拟器,我们可以在这两个不同的模拟器版本中运行示例程序,进行对比,如下图所示:

如上图所示,在iOS 7中的导航栏默认情况下跟状态栏是交织在一起的,并且它的颜色也被修改为亮灰色。

设置导航栏的背景颜色

在iOS 7中,不再使用tintColor属性来设置导航栏的颜色,而是使用barTintColor属性来修改背景色。我们可以在AppDelegate.m文件中的方法didFinishLaunchingWithOptions:里面添加如下代码来修改颜色:

[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];

效果如下图所示:

一般情况,我们都会使用自己的颜色,下面这个宏用来设置RGB颜色非常方便:

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

将上面这个宏放到 AppDelegate.m 文件中,然后通过这个宏来创建一个UIColor对象(根据指定的RGB)。如下示例:

[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)];

默认情况下,导航栏的translucent属性为YES。另外,系统还会对所有的导航栏做模糊处理,这样可以让iOS 7中导航栏的颜色更加饱和。如下图,是translucent值为NO和YES的对比效果:

要想禁用translucent属性,可以在Storyboard中选中导航栏,然后在Attribute Inspectors中,取消translucent的勾选。

在导航栏中使用背景图片

如果希望在导航栏中使用一个图片当做背景,那么你需要提供一个稍微高一点的图片(这样可以延伸到导航栏背后)。导航栏的高度从44 points(88 pixels)变为了64 points(128 pixels)。

我们依然可以使用setBackgroundImage:方法为导航栏设置自定义图片。如下代码所示:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];


源码来自:https://pan.quark.cn/s/10499a977e58 在信息技术与软件开发领域,特别是数据管理及算法规划方面,计算数值的属性值是一项关键的作。 依据标题“借助JAVA,计算数值的属性值”,我们可以解读为运用Java编程语言开发一种途径,这种途径能够评估数值的某些特定属性或指标。 说明中提及“奇偶属性是一种基础的属性值”,这表明我们或许会研究如何利用Java判定数值的奇偶性,但这仅是属性值的一种初级应用。 属性值一般与线性代数中的矩阵理论相关联,其中属性值展现了矩阵变换对向量伸缩旋转的影响程度。 然而,在此场景下,属性值或许涉及更广泛的数学或编程范畴,例如数值的素因子分解、模数运算特性、位运算、数值的统计特征(例如算术平均数、中位数、众数)或其他定制化计算。 在Java环境中,有多种技术手段可用于求取数值的属性值。 以奇偶属性值为例,可以通过检查数值除以2的余数来确定:```javaint value = 17;boolean isOdd = value % 2 != 0; // 判断是否为奇数```倘若我们要计算更高级的属性值,例如素因子分解,可以编写一个函数来分解指定数值的所有素因子:```javapublic List<Integer> factorization(int value) { List<Integer> elements = new ArrayList<>(); for (int j = 2; j * j <= value; j++) { while (value % j == 0) { elements.add(j); value /= j; } } if (value > 1) { elements.add(valu...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值