苹果发布iOS7之后,iOS7全部采用扁平化的界面,我们的app界面在iOS7上出现了很大的改变,这包括UINavigationBar,UIButton,UIActionSheet,UITabBar等。现在我主要针对这几个功能说明一下在iOS7上的兼容性。

1.UINavigationBar
在iOS7以下所有的UINavigationBar都采用拟物化的界面,给人的感觉很有立体感,但是在iOS7中所有的界面使用的扁平化的界面,这让我们的app在iOS7的系统上看起来不是那么的协调。
把UINavigationBar变为扁平化的就是加一个背景图片

<ignore_js_op style="-ms-word-wrap: break-word;">

[self.navigationController.navigationBarsetBackgroundImage:navBackImage forBarMetrics:UIBarMetricsDefault];

<ignore_js_op style="-ms-word-wrap: break-word;">

2.UIButton

<ignore_js_op style="-ms-word-wrap: break-word;">

在iOS7上出现模糊装的,看起来不是很明显,

修复办法给
UIButton加上边框,代码如下:

这需要引用:

#import <QuartzCore/QuartzCore.h>

button.layer.cornerRadius=8;
heightBtn.layer.borderWidth=1.0f;
heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor;

<ignore_js_op style="-ms-word-wrap: break-word;">

3.UIActionSheet
在iOS7上如果在UIActionSheet中加上UIPickerView会显示不完全,原因是在iOS7上显示的高度不够,它是相对与整个屏幕的位置定位的,所以应该修改UIActionSheet显示的高度。
4.UITabBar
在iOS7中如果想隐藏UITabBar只是使用
self.tabBarController.tabBar.hidden = YES;
是会隐藏UITabBar,但是底部会留下阴影,也就是整个屏幕不会全部显示,解决办法是在self.hidesBottomBarWhenPushed = YES;当推送的时候把UITabBar隐藏掉就行了,然后你可以重新设计UIView的大小等等。

4、UITableViewCell
    在之前的版本中UITableViewCell的backgroundColor是透明背景的,但是在iOS7中是默认白色背景,如果在TableView后面加入背景的应用要注意了,在创建UITableViewCell的时候把backgroundColor设置为[UIColor clearColor];

5、UIViewController的变化
     之前的版本中UIViewController中的view在显示后会自动调整为去掉导航栏的高度的。这样我们摆放控件的时候就会在导航栏的下面显示。但是在iOS7中UIViewController的wantsFullScreenLayout已经被舍弃了,不再提供此属性,所有的UIViewController创建后默认就是full Screen的,因此如果带导航栏的应用界面中的部分控件会被导航栏覆盖掉。
     要解决这中情况可以使用iOS7中UIViewController新增的属性extendedLayoutIncludesOpaqueBars和edgesForExtendedLayout来解决。其中这个属性指定了当Bar使用了不透明图片时,视图是否延伸至Bar所在区域,默认值时NO。而edgesForExtendedLayout则是表示视图是否覆盖到四周的区域,默认是UIRectEdgeAll,即上下左右四个方向都会覆盖,那么为让顶部不进行延伸到导航栏覆盖的区域,我们可以把顶部区域延伸去掉。实现代码如下:

self.extendedLayoutIncludesOpaqueBars = NO;

self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight;

6、无法再获取MAC地址
      在iOS7中无法再获取到MAC地址了,他会固定返回02:00:00:00:00:00。在之前版本中使用MAC地址的应用可能要做调整了。

7、iOS7(Xcode5)中隐藏状态栏的方法
       将4s的系统升级到了扁平化的iOS7,如丝般顺滑,比预想的要完美。很多不经意间发现的小细节让人发出雅典娜之惊叹。所以狗日的不要相信那些媒体的胡说八道,那些人根本就没有体会过即能写出各种奇谈怪论。纸上得来终觉浅,绝知此事需躬行。推荐升级安装。

然后是Xcode5,整个界面也是冲着扁平化的方向,怎么说呢,简约而不简单。总之就是更好用了。赶紧将以前写的一些app放Xcode5下编译,不少问题出来了。

首当其冲就是界面上的状态栏了,iOS7默认程序就是全屏(fullscreen)模式,用半透明的方法将状态栏挡在后面,感觉有点怪怪的

要干掉它还真不容易,在iOS7之前,我们可以这样干:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

但是现在无效了,怎么解?Google了一下,这么干:在app的plist文件中,添加两个属性:UIStatusBarHidden和UIViewControllerBasedStatusBarAppearance,顾名思义,就是用来设置状态栏的,如图所示:
<ignore_js_op style="-ms-word-wrap: break-word;">

ios7控件特性(一)的更多相关文章

  1. 【原创】自己动手写控件----XSmartNote控件

    一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的labe ...

  2. DataGridView控件

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  3. DataGridView控件-[引用]

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  4. DataGridView控件使用大全说明-各种常用操作与高级操作

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  5. DataGridView控件使用大全

    转自:http://www.cnblogs.com/xiaofengfeng/archive/2011/04/16/2018504.html DataGridView控件 DataGridView是用 ...

  6. Windows Phone 8.1 新特性 - 控件之列表选择控件

    本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...

  7. 背水一战 Windows 10 (6) - 控件 UI: 字体的自动继承的特性, Style, ControlTemplate

    [源码下载] 背水一战 Windows 10 (6) - 控件 UI: 字体的自动继承的特性, Style, ControlTemplate 作者:webabcd 介绍背水一战 Windows 10 ...

  8. 控件 UI: 字体的自动继承的特性, Style, ControlTemplate

    字体的自动继承的特性 Style 样式 ControlTemplate 控件模板 示例1.演示字体的自动继承的特性Controls/UI/FontInherit.xaml <Page x:Cla ...

  9. 解决 iOS7 通过tag 找不到 UITableViewCell 的子控件

    当iOS7问世,程序的世界就混乱了,以前良好的程序,现在是一塌糊涂,于是只能把问题一个一个攻破. 由于项目当中需要每个cell显示数目不同的图片,于是我在每个cell 赋值之前,通过一下方法把cell ...

随机推荐

  1. Java实现简单版SVM

    Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的.         之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...

  2. WCF - REST服务

    WCF REST服务 一个基于REST的WEB服务操作请求只需要体现两点 一是资源的唯一标识 二是操作类型 资源的唯一标识通过URI来完成 而操作类型通过HTTP方法(GET/HEAD POST PU ...

  3. 字符串匹配算法-BM

    在用于查找子字符串的算法中,BM(Boyer-Moore)算法是当前有效且应用比较广泛的一种算法,各种文本编辑器的“查找”功能(Ctrl+F),大多采用Boyer-Moore算法.比我们学习的KMP算 ...

  4. iOS中保证线程安全的几种方式与性能对比

    来源:景铭巴巴 链接:http://www.jianshu.com/p/938d68ed832c 一.前言 前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@synchronized. ...

  5. iOS 9 关键字的简单使用

    前言: 在iOS 9 苹果推出了很多关键字, 目的其实很明确, 主要就是提高开发人员的效率, 有益于程序员之间的沟通与交流, 在开发中代码更加规范! 1. nullable 与 nonnull nul ...

  6. GUI编程笔记(java)08:GUI通过鼠标移动到按钮上更改背景色案例

    首先我们看看源代码如下: package cn.itcast_06; import java.awt.Button; import java.awt.Color; import java.awt.Fl ...

  7. 关于js中return false、event.preventDefault()和event.stopPropagation()

    在平时项目中,如果遇到需要阻止浏览器默认行为,大家经常会用return false;和event.preventDefault()来阻止,但对它俩的区别还是有些一知半解,于是看了文档,查了些资料,在此 ...

  8. centos6.6 install

    文中下载链接以中断 请另行下载 #!/bin/bash rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8. ...

  9. angularjs 根据变量改变 动态加载模板

    directive return { restrict: 'E', replace: true, templateUrl: 'app/view/order.html', link: function ...

  10. mysql开启函数功能

    输入 show variables like '%func%'; 命令 会看到 log_bin_trust_function_creators 的状态,如果是OFF表示自定义函数功能是关闭的 输入命令 ...