标签:
edgesForExtendedLayout属性用于替代wantsFullScreenLayout,控制页面显示的范围,默认值是UIRectEdgeAll
automaticallyAdjustsScrollViewInsets:通常我们希望ScrollView或者UITableView内容显示是在UINavigation Bar下面。iOS7以后,默认值是Yes,所以是全屏显示,但是要注意一点,ScrollView要作为控制器的根视图(PS:使用xib布局时似乎不是根视图也可以),automaticallyAdjustsScrollViewInsets = Yes 与 edgesForExtendedLayout = UIRectEdgeNone的区别是前者的UINavigation Bar是透明显示的,后者不透明;所以在使用UISearchDisplayController时,将tableView设置为root view就不会有动画问题;
extendedLayoutIncludesOpaqueBars:他是跟属性navigationbar的translucent属性一起使用的,控制根视图布局的范围是从navigationbar下面布局的还是全屏布局的(PS:extendedLayoutIncludesOpaqueBars和edgesForExtendedLayout属性是不能联合产生效果,虽然edgesForExtendedLayout也能使navigationbar不透明); 如果想在navigation bar不透明的情况下,实现UISearchDisplayController的搜索框动画,要可以这样设置
self.navigationController.navigationBar.translucent = NO;
[self setExtendedLayoutIncludesOpaqueBars:YES]; // 扩展到不透明的bar下面
self.navigationController.navigationBar.translucent = NO; self.extendedLayoutIncludesOpaqueBars = NO; 这样设置的视觉效果同edgesForExtendedLayout = UIRectEdgeNone是一样的,根视图的布局也是一致的;如果它和self.edgesForExtendedLayout = UIRectEdgeAll;同时存在,不论设置的先后顺序如何,都是前者起作用;
标签:
原文地址:http://www.cnblogs.com/wfwenchao/p/5036808.html