iOS 7 button无边框,操作栏透明,控制器全屏


Tab Bar 对照

iOS 7                                                              iOS 6

假设使用了自己定义icon的话,

能够使用UITabBarItem中的selectedImage属性来设置按下状态的图像。


Toolbar 对照

iOS 7                                                           iOS 6


Bar Buttons 对照

在iOS 6中,栏上button能够是有边框的,也能够是无边框的。

在iOS 7中仅仅能是无边框的。

iOS 7                                                         iOS 6

iOS 7                                                        iOS 6

在早期版本号的iOS中,自己定义栏上button图片会自己主动被当做“template image”。(template image被用作终于图像的一个遮罩。)而iOS 7中,你能够使用下面UIImage属性来指定是否须要把自己定义的图片当做template image来处理:

  • UIImageRenderingModeAlwaysTemplate。图片被用作Template Image。
  • UIImageRenderingModeAlwaysOriginal。图片依照原样渲染。

    假设你没有指定对图片的处理方法的话,图片会使用包括它的视图的默认处理方式。比方,tab栏默认会使用template处理方式,而进度滑块则会使用原样完整渲染的处理方式。

    注意:template image会按照其父结构的着色进行着色 。假设不想让栏上的元素被着色,为图片设置UIImageRendering-ModeAlwaysOriginal属性。


    活动菜单(Activity) 对照

    活动菜单代表了一个能够响应当前选择内容的功能,它能够是系统提供的或者自己定义的。用户能够通过系统提供的活动视图控制器来使用这些功能,当用户点击分享button的时候,活动视图控制器就会从屏幕底部向上升起。

    系统提供的活动菜单中能够提供两种风格的button:

    1. 原样渲染的app图标——比方以下这个邮件的icon
    2. 和tab栏上的button一样的风格——比方以下复制、打印这种icon

    第三方功能总是使用另外一种风格的icon。

    假设要在你的app中提供某个服务,创建一个简洁、线框状的template image。创建template image的时候请遵守下述指导原则:

    1. 使用黑色或者白色,配合适当的alpha透明度
    2. 不要使用投影
    3. 使用抗锯齿效果

    活动菜单上的template image应该在区域中居中,分辨率大约在70 x 70像素左右。


    集合视图(Collection View)对照


    图片视图(Image View)对照

    在iOS 7中,UIImageView包括了着色属性tintColor。

    当图片视图包括template image的时候,tintColor会被应用到图片上。


    地图视图(Map View)对照

    在iOS 7,仅仅可以使用一个新的类MKOverlayRenderer来在地图视图上面创建覆盖层。

    假设要给地图视图添加3D外观的话,仅仅需给它的camera属性分配一个相机对象就可以(MKMapCamera的一个实例)。


    页面视图控制器(Page View Controller)对照

    能够使用滚动过场,也能够使用卷页过场动画。

    在iOS 7中,使用两个方法来分别指定pageViewControllerPreferredInterfaceOrientationForPresentation

    pageViewControllerSupportedInterfaceOrientations


    滚动视图(Scroll View)对照

    iOS 7                            iOS 6

    在iOS 7,

    通过UIViewController的

    automaticallyAdjustsScrollViewInsets属性

    来管理滚动视图的项目分组之间的间隔。


    表格视图(Table View)对照

    iOS 7                                   iOS 6


    文本视图(Text View)对照

    通过UIFont类的preferredFontForTextStyle方法

    获取文本视图中显示的文字字体。


    控件(Controls)对照

    控件是种特殊的能够与用户进行交互 UI元素。

    由于UIControl是从UIView继承而来,

    你能够使用控件的tintColor属性来为它们着色。


    日期拾取器(Date Picker)对照

    iOS 7的app会将日期拾取器嵌入到内容中,

    而不是单独呈如今一个弹出的视图上。

    比方日历应用动态地将表格的一行扩展开,

    将日期拾取器嵌入,

    用户指定时间的时候就不须要离开当前这个加入事项视图。


    新增联系人button(Contact Add Button)对照

    新增联系人button是一个UIButtonTypeContactAdd类型的UIButton。

    iOS 7    iOS 6


    细节展开button(Detail Disclosure Button)对照

    细节展开button是一个UIButtonTypeDetailDisclosure类型的UIButton,点击后会在还有一个表格或视图中呈现。

    iOS 7     iOS 6

    当细节展开button出如今表格的一行中,点击该行的其他地方不会激活该button;仅会选中该行。


    Infobutton(Info Button)对照

    Infobutton的类型是UIButtonTypeInfoLight或者UIButtonTypeInfoDark

    iOS 7    iOS 6


    文本标签(Label)对照

    iOS 7                           iOS 6

    使用UIFont的方法preferredFontForTextStyle来获取显示在标签上的字体。


    页码控件(Page Control)对照
    iOS 7                     iOS 6


    拾取器(Picker)对照

    iOS 7                                 iOS 6


    进度视图(Progress View)对照

    iOS 7                                    iOS 6


    刷新控件(Refresh Control)对照

    iOS 7                                    iOS 6


    圆角矩形button(Rounded Rectangle Button)对照

    圆角矩形button在iOS 7中被弃用了。

    用系统的无边界button替代它。

    相应的类型是UIButtonTypeSystem的UIButton。

    iOS 7系统button不包含倒角和背景样式。

    注意:在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonType-System。

    假设你非要显示一个包括倒角的button,

    就使用UIButtonTypeCustom类型的button,

    该类型才支持自己定义背景图片。


    分段控件(Segmented Control)对照

    iOS 7                              iOS 6


    滑动器(Slider)对照

    iOS 7                                 iOS 6

    iOS 7中依旧能够对最小和最大轨道图像按下状态使用着色,

    使用三个属性来操作:

    minimumTrackTintColor

    maximumTrackTintColor

    thumbTintColor


    步进器(Stepper)对照

    iOS 7          iOS 6


    开关(Switch)对照

    iOS 7         iOS 6

    iOS 7继续能够对开、关、不可用三个状态使用着色。

    按下状态则使用以下三个属性着色:

    onTintColor

    tintColor

    thumbTintColor。


    文本域(Text Field)对照

    iOS 7                                iOS 6

    使用UIFont的preferredFontForTextStyle方法来获取和显示文字域中的字体。


    暂时视图(Temporary Views)对照

    ActionSheet,AlertView,ModalView 是三种暂时视图,

    模态视图ModalView本质上是视图的一种

    注意:当暂时视图出现时,iOS 7自己主动将背后那个标准视图变暗。


    动作列表(Action Sheet)对照

    iOS 7,默认是透明的,包含无边框的button

    iOS 7                                          iOS 6

    ActionSheet中危急的选项destructiveButtonTitle默认红色


    警告对话框(Alert)对照

    iOS 7                                 iOS 6

    iOS 7,警告对话框有三个button时,第三个button会显示在前两个button下一排


    模态视图(Modal View)对照

    iOS 7                             iOS 6


    联系人 对照

    iOS 7,app的图标尺寸是120 x 120像素(高分辨率下)

    操作栏背景着色 使用barTintColor或tintColor

    UIViewController提供了下面属性

    1. edgesForExtendedLayout

      这个属性属于UIExtendedEdge类型,它能够单独指定矩形的四条边,也能够单独指定、指定所有、所有不指定。

      使用edgesForExtendedLayout指定视图的哪条边须要扩展,不用理会操作栏的透明度。
    2. 这个属性的默认值是UIRectEdgeAll。
    3. extendedLayoutIncludesOpaqueBars

      假设你使用了不透明的操作栏,
    4. 设置edgesForExtendedLayout的时候也请将 extendedLayoutIncludesOpaqueBars的值设置为No
    5. (默认值是YES)。
    6. automaticallyAdjustsScrollViewInsets

      假设你不想让scroll view的内容自己主动调整,将这个属性设为NO(默认值YES)。

    iOS 7同意视图控制器在app执行过程中改变系统状态栏的样式。

    开启这个功能,

    请在Info.plist文件里加入键UIViewControllerBasedStatusBarAppearance,

    并将值设为YES。

    动态改变系统状态栏的一个好方法是

    重写preferredStatusBarStyle方法,

    用一个动画模块来更新状态栏外观,

    并调用setNeedsStatusBarAppearanceUpdate方法。

    使用着色(Tint Color)

    由于UIWindows继承自UIView,你能够这样通过设置窗口的着色属性指定着色:

    window.tintColor = [UIColor purpleColor];

    重要:iOS 7不支持通过外观代理API来设置着色。

    当警告框(alert)和上拉菜单(action sheet)出现的时候,

    iOS 7自己主动将背后视图的着色变暗。

    为了响应该色彩变化,在渲染时使用tintColor的自己定义视图的子类须要重写tintColorDidChange方法,以便在合适的时候刷新渲染。

    注意:在iOS 6中,tintColor能够用来给导航栏的背景着色、tab栏、工具栏、搜索栏、搜索栏的范围选择栏着色。

    而在iOS 7中,给背景着色仅仅须要使用barTintColor属性就能够了。

    使用字体(Fonts)

    iOS 7引入了动态字体(Dynamic Type)

    最小字号                                                       最大

    请用UIFont类下的preferredFontForTextStyle方法来生成文字,

    而不是直接指定字体的名称和大小。

    操作栏和栏上button(Bars & Bar Buttons)对照

    iOS 7中,状态栏是透明的,

    其它的操作栏(导航栏、tab栏、工具栏、搜索栏、搜索栏以下的范围选择栏)是半透明的。

    通常情况下,你希望能看到操作栏背后是你的内容。

    大多数操作栏会将遮蔽住的内容进行模糊处理,除非你提供一张自己定义背景图。

    为了标识操作栏的位置,iOS 7引入了barPosition属性,

    它能够帮助你指定什么时候自己定义背景图片须要平铺在状态栏上。

    UIBarPositionTopAttached表明操作栏贴近屏幕顶部,

    背景向上延伸入系统状态栏区域。

    相对的,值UIBarPositionTop表示操作栏位于当前局部内容的顶部(比方,在弹出式气泡的顶部)它不为状态栏提供背景。

    系统状态栏(Status Bar)对照

    使用常量UIStatusBarStyle来指定使用黑色风格还是白色风格:

    UIStatusBarStyleDefault显示黑色的文字内容。

    当状态栏后面的内容是淡色的时候适合使用。



    UIStatusBarStyleLightContent显示白色的文字内容。

    当状态栏后面的内容是深色时使用比較合适。

    有些情况下,

    导航栏和搜索栏的背景图片能够向上延伸到状态栏背后。

    假设状态栏以下没有其它栏,

    内容视图须要使用全屏高度。

    在iOS 7中,通过独立的视图控制器,

    能够在app执行的时候改变状态栏的风格。

    实现方法是在Info.plist中增加键

    UIViewControllerBasedStatusBarAppearance,

    并设置值为YES。

    • 导航栏(Navigation Bar)对照

    iOS 7                                  iOS 6

    假设你使用UIBarPositionTopAttached样式创建了一个导航栏背景,确保图像包括了系统状态栏的区域。

    详细来说,你须要一个高分辨率下128(64*2)像素的图像。

    以下这个表格描写叙述了iOS 7怎样对待不同高度的可变导航栏背景。

    表格 5-1 可变大小的背景图片处理策略



    搜索栏和范围选择栏(Search Bar & Scope Bar)避免使用超高的背景图片来制作导航栏以下的自己定义投影,这样的技术在iOS 7中不起作用,由于超高的图片会向上(系统状态栏方向)扩展,而不是向下(导航栏以下)扩展。

    假设你想给导航栏添加投影,能够创建一个自己定义图片,然后使用shadowImage属性来自己定义投影图片。

    iOS 7                                iOS 6



    在iOS 7中,UISearchDisplayController包括了displaySearchBarInNavigationBar属性,

    这样你就能够将搜索栏放进导航栏,就像日历app里面这样:

    假设你使用UIBarPositionTopAttached的位置为搜索栏创建了一个背景图片,请确保图片的高度包括了状态栏的高度。

    范围选择栏则同意用户选择搜索结果的范围。

    注意:范围选择栏不能单独出现;必须依附在搜索栏以下出现。

    iOS 7                               iOS 6

  • iOS_67控件外观对照的更多相关文章

    1. 继续聊WPF——自定义CheckBox控件外观

      上一篇文章中谈到了BulletDecorator控件,就是为自定义CheckBox控件的模板做准备,因为CheckBox需要比较严格的布局,正好,BulletDecorator控件就合适了,该控件的布 ...

    2. Windows phone自定义控件(无外观控件)——FlipPanel

      编码前 无外观自定义控件的定义在上一篇中已经有了,至于这一篇的自定义控件,比之前多加入了状态的变化,就像默认的Button具有Pressed.Normal等状态.在状态转变的同时可以加上一些动画,可以 ...

    3. Windows phone 自定义控件(无外观控件)——ColorPicker

      编码前 在上一篇博客中,写的是一个UserControl的子类,它具有固定的外观(虽然也可以通过样式来进行修改,但受到的限制很大).如果你想要使用这个控件的逻辑,但是希望在使用的时候可以更改控件的外观 ...

    4. 17Web服务器端控件

      Web服务器端控件 Web服务器端控件 ASP.Net提供了两类服务器端控件:Html服务器端控件和Web服务器端控件.由于Web服务器端控件功能更强大,和Windows应用程序的控件使用方法类似,容 ...

    5. 共享你的控件 -- 用NuGet包装自己的控件

      简介 在当前的开发中,NuGet的使用已经有了不小的地位,特别是应用.NET Core的UWP开发里,模块化的平台本身更是直接依赖于NuGet这一包管理器. 有时自己开发了一个不错的控组件,想通过Nu ...

    6. 自己开发基于c#的垂直滚动条控件

      由于Visual Studio工具箱中自带滚动条控件外观太老,而且没有颜色外观属性可设置. 所以自己就试着开发一个垂直的滚动条,它可以用来控制TextBox的滚动. 由于代码比较多,源文件已经打包到网 ...

    7. Flex_控件

      1.Text控件 外观: 代码: <?xml version="1.0" encoding="utf-8"?> <s:Application ...

    8. ArcGIS Engine开发之旅03--ArcGIS Engine中的控件

      原文:ArcGIS Engine开发之旅03--ArcGIS Engine中的控件 制图控件,如MapControl.PageLayoutControl,其中MapControl控件主要用于地理数据的 ...

    9. WPF中的ControlTemplate(控件模板)(转)

      原文地址 http://www.cnblogs.com/zhouyinhui/archive/2007/03/28/690993.html WPF中的ControlTemplate(控件模板)     ...

    随机推荐

    1. Wix打包系列(二)用户界面和本地化操作

      原文:Wix打包系列(二)用户界面和本地化操作 上一章节,我们已经大概知道如何对文件进行打包安装,不过我们也注意到,通过对Sample.wxs的编译链接,生成的msi安装包没有任何用户界面,只有一个安 ...

    2. Effective C++ -- 构造析构赋值运算

      05.了解C++默默编写并调用哪些函数 编译产生的析构函数时non-virtual,除非这个类的基类析构函数为virtual 成员变量中有引用和const成员时,无法自己主动生成copy assign ...

    3. 利用Nginx构建负载均衡server

      大家都知道.一个域名相应一个IP地址,而一个WebSite则相应一个IP地址上相应port服务的应用程序(或位置).而大型站点的并发訪问量很大,这些站点是怎样在一台Webserver上实现负载均衡的呢 ...

    4. deinstall oracle 11g on linux

      deinstall oracle 11g on linux   From 11gR2, oracle provide us an deinstall tool. With that now we ca ...

    5. Codeforces Jzzhu and Sequences(圆形截面)

      # include <stdio.h> int f[10]; int main() { int x,y,n,j; while(~scanf("%d%d%d",& ...

    6. LeetCode: Unique Binary Search Trees [095]

      [题目] Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For ...

    7. hibernate 大对象类型hibernate制图

      基础知识: 在 Java 在, java.lang.String 它可以用来表示长串(超过长度 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中 ...

    8. 数学思想方法-分布式计算-linux/unix技术基础(5)

      shell命令行参数 -bash-4.2$ cat test1.sh#!/bin/shecho "$0  "echo "$1  "echo "$2   ...

    9. 何谓集群(cluster)

      1.簇 1.1 何谓集群 简单的说.簇(cluster)是一组计算机.他们,作为一个一般的为客户提供了一套网络资源.该计算机系统是集群中的单个节点(node). 个理想的集群是,用户从来不会意识到集群 ...

    10. “AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~

      原文同步至:http://www.waylau.com/air-sdk-0-0-air-sdk-location-does-not-exist-address/ 导入AS3项目时提示“AIR SDK ...