Redesign Your App for iOS 7 之 页面布局
iOS7自定义statusbar和navigationbar的若干诡异问题
  iOS 7 UI Transition Guide
 
 
 
  1. icon 更新到iphone:120X120. ipad:152x152 
 
 
 
  2. 开机画面要添加回status bar 
 
 
 
  3. view controller 用full-screen layout 
 
 
 
  4. 重新设计bar button 图标 
 
 
 
  5. 按钮要使用无边化 
 
 
 
  6. 使用相对布局,auto layout,尽量不要写死坐标和大小 
 
 
 
  7. 用户可自定义字号,字号可调整 
 
 
 
  8. 注意底部手势的使用,苹果优先响应系统的控制面板 
 
 
 
  9.尽量去特效化去物理化,保持界面元素平滑和层次感 
 
 
 
  10. 尽量使用storyboards 
 
 
 
  11. 在application:didFinishLaunchingWithOp 
  tions: 
  
 
 
  里判断版本 6 or 7 来载入相关资源 
 
 
 
  12. 进度和选中状态的window.tintcolor 是应用到整个view,包括subviews.IOS7用barTintColor设置一个bar的背景 
 
 
 
  13. 自动调整字体字号,dynamic type,用UIFontpreferredFontForTextStyl 
  e去拿一个字体 
  
 
 
  14. 状态烂透明,其它bar都是半透明的 
 
 
 
  代表bar背景延伸到status bar,图像要64像素高,  
  UIBarPositionTop代表不延伸,所有bar的按钮都是无边际的 
  
 
 
  15.status bar,白底黑字:UIStatusBarStyleDefault 
 
 
 
  黑底白字:UIStatusBarStyleLightCon 
  tent 
  
 
 
  16. Navigation Bar 默认是半透明,底部有1像素的hairline, tintColor去定义barbutton,用barTintColor去定义bar 背景。如果要用自定义的返回按钮,需要做一个MASK图像作为切换过渡用。 NaviBar的下部阴影要用自定义图像和shadowImage来定义,不要用过长的带阴影部分的图像来做阴影,因为在IOS7上,多出的像素会首先放到statusbar 
 
 
 
  17. 搜索栏,用tintColor定义引导文字foreground,用barTintColor来定义搜索栏的背景。IOS7可以在UISearchDisplayControlle 
  r里面的displaysSearchBarInNavig 
  ationBar特性,做到把搜索栏集合在NaviBar上面,具体参考系统自带的日历应用 
   
 
 
  Scope bar范围bar不会自动显示,需要绑定到search bar,tint定义方法同搜索栏类似 
 
 
 
  18. Tab Bar在ipad上是56像素,用itemPositioning来定义布局,在中央布局时,可以用itemWidth和itemSpacing来自定义布局,tintColor定义选择的items,barTintColor定义背景。可以是使用selectedImageproperty来自定义选中状态的图像 
 
 
 
  19. Toolbar ,tintColor定义item,barTintColor定义背景,在top边有一条1像素hairline(貌似和别的几个bar有不一样,它们多少底部),UIToolbarPosition已经弃用了,用UIBarPosition代替 
 
 
 
  20. barbuttons,使用图像有2种方式UIImageRenderingModeAlwa 
  ysTemplate(默认使用),UIImageRenderingModeAlwa 
  ysOriginal(使用它来设定不是用tinting) 
   
 
 
  21. activity view controller里的图标要用黑白和透明度表示,抗锯齿处理,不要用dropshadow。图标大小是70x70居中 
 
 
 
  22. Ios7 的ImageView包含tintColor特性,在UIImageRenderingModeAlwa 
  ysTemplate模式下,tintColor会应用到该图片上 
  
 
 
  23. 在Ios7上,用MKOverlayRenderer在mapview上创建overlay,3D地图内容参考MKMapCamera 
 
 
 
  24.IOS7上,用pageViewControllerPrefer 
  redInterfaceOrientationF 
  orPresentation和pageViewControllerSuppor 
  tedInterfaceOrientations 
  控制pageview 
     
 
 
  25. iPad上有popover来显示过渡页面,背景半透,同时内容是贴边的 
 
 
 
  26. ScrollView外观上稍有变化,可以用automaticallyAdjustsScro 
  llViewInsets特性管理srollview  
   
   
 
 
  27.table view在iOS7里变动比较大,cellseparator更细更窄更浅色,同时是从左边开始插入。index默认是白底半透,header的文本显示用all-capitalletters 
 
 
 
  和footer文本显示用sentence-style 
 
 
 
  ,可以用UITableViewHeaderFooterV 
  iew来自定义样式; 
  
 
 
  28. text view和webview变动不大,需要注意的是用UIFont里的preferredFontForTextStyl 
  e 
  
 
 
  取得页面的字体 
 
 
 
  29.像添加,详细信息,标签,页面控制,时间选择器,进度条(进度条的颜色可以用trackTintColor设置) 
 
 
 
  ,菊花,加减,切换按钮等元素有相当大的变化, 
 
 
 
  30.圆角按钮IOS7中已经不显示边框,并且用UIButtonTypeSystem代替之前的UIButtonTypeRoundedRect 
 
 
 
  ,(IOS6样式的在新系统里自动转换) 
 
 
 
  31. Segmentedcontrol分节控制在IOS7里只有简单的样式,以前的segmentedControlStyle的特性已经不用了 
 
 
 
  32.slider在ios7里面可以用minimumTrackTintColor,maximumTrackTintColor, andthumbTintColor分别设定最小值颜色,最大值颜色,和触摸时颜色。如果设定成nil,就使用默认 
 
 
 
  33. 切换按钮在ios7里面动感十足,可以用onTintColor, tintColor, andthumbTintColor设置开关和触摸样式 
 
 
 
  34. actionsheet在ios7里面是一个半透的背景加上无边按钮。应用现在运行的用户自定义样式的as会被弃用,无论如何都是用IOS7的默认样式。在initWithTitle:delegate:cancelButtonTitle:destructiveButtonTitle:otherButtonTitles:方法里面的destructiveButtonTitle系统默认是红色 
 
 
 
  35. Alert在ios7里面也强制要使用默认样式,如果你提供第三个按钮,将在默认2个按钮的上方显示