IOS7 TableView適配

ios7下的app都是全屏的,意思就是全部控制器的view默認都是從屏幕的(0,0)開始。ios

爲了達到全屏效果的app,官方爲UIviewController增長了幾個屬性:app

1 @property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
2  @property(nonatomic,assign) BOOL extendedLayoutIncludesOpaqueBars NS_AVAILABLE_IOS(7_0); // Defaults to NO, but bars are translucent by default on 7_0.  
3  @property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES

      
一:
  屬性edgesForExtendedLayout,意思大概是邊緣向四周展開iview

  edgesForExtendedLayout 值是結構體,默認值是 UIRectEdgeAll,ui

  也就是說,當一個控制器要往父控制器添加的時候,上下左右填充滿整個屏幕。atom

  例如1:設計

  UIViewController添加到uiNavController上時,uiviewcontroller的y值 == 狀態欄的的yblog

  這時候設置 self.edgesForExtendedLayout = UIRectEdgeNone;io

  uiviewcontroller的y值 == 導航欄y + 導航欄heighttable

  /*ios7

   這種狀況還能夠設置,導航欄的bar的透明度屬性translucent爲no

   self.navigationController.navigationBar.translucent = NO;

     translucent屬性在ios6以前默認爲no,

   而在ios7下的導航欄默認倒是半透明的,爲yes,因此該屬性不會佔據空間。

  */

  例如2:

  UITableViewController添加到UITabBarController上時,UITableViewController的底部一部分cell會被TabBar擋住

  這時候設置self.edgesForExtendedLayout = UIRectEdgeNone;

  TabBar的y值 == CGRectGetMaxY(UITableViewController)

二 : 

  self.extendedLayoutIncludesOpaqueBars = YES;意思展開包括狀態欄

三:

      self.automaticallyAdjustsScrollViewInsets = YES;

  當設計到scrollView、tableview時,在設置完數據的時候,內部會改變contentInsets的top值爲64 例如:group樣式的tableView在有導航欄的控制器下,第0組的頭部會多出一部分高度h緣由是 ios7下group樣式的tabelView的第0組第0個cell,在tableview中的y值爲35!!!

而且在設置完cell數據以後,系統默認會執行

self.automaticallyAdjustsScrollViewInsets = YES;

也就是tableview的contentInset.top = 64;因此 第0組第0行cell的y值 = 64 + 35.要達到第0組第0行cell的y值 = 導航欄底部 的效果。就要在cell設置數據以前,

           tableView.contentInset = UIEdgeInsetsMake(- 35, 0, 0, 0);

這樣在cell在設置完數據後,系統內部改變top值增長64,就剛好達到效果。若要達到每一個group頭部等高效果,    

        tableView.sectionHeaderHeight = cellSectionHeight;

        tableView.sectionFooterHeight = 0;  tableView.contentInset = UIEdgeInsetsMake(cellSectionHeight - 35, 0, 0, 0);

原文:http://wyfpkx.blog.163.com/blog/static/17260843920142422043416/

相關文章
相關標籤/搜索