ios7中的edgesForExtendedLayout

edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。

因为iOS7鼓励全屏布局,所以它的默认值是UIRectEdgeAll——四周边缘都延伸,就是说,即使视图中上有navigationBar,下有tabBar,那么视图仍然会延伸覆盖到四周的区域。

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

如上代码所示,设置了UIRectEdgeNone之后,镶嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar,同时UIView也恢复到了iOS6时代。

不过,这个对于Status Bar在iOS7上的变化是无效的,正确的说应该是部分无效。在存在Navigation部分或者Tabbar部分的时候,上面的代码可以使得Status Bar也不再透明,但是在没有这两个部分的时候,Status Bar依旧是会计入UIView范围的。

时间: 2024-11-07 02:10:40

ios7中的edgesForExtendedLayout的相关文章

iOS7中计算UILabel中字符串的高度

iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下: UILabel+StringFrame.h ////  UILabel+StringFrame.h//  LabelHeight////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <UIKit/UIKit.h>@interface UILabel (StringFrame)- 

iOS7中UIView的animateKeyframesWithDuration方法讲解

在iOS7中,给UIView添加了一个方法用来直接使用关键帧动画而不用借助CoreAnimation来实现,那就是animateKeyframesWithDuration 以下是使用源码: // // ViewController.m // // Created by YouXianMing on 14/11/26. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import "ViewController.h"

iOS7中Cell高度 Label高度自适应

? 1 2 3 4 5 6 7 8 9 10 11 12 ?- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{     NSString *str = [_dataArray objectAtIndex:indexPath.row];     UIFont *tfont = [UIFont systemFontOfSize:14.0];     NSDictio

ios7中 丰富多彩的UIViewController之间的切换

转载自:http://onevcat.com/2013/10/vc-transition-in-ios7/ 毫无疑问,ViewController(在本文中简写为VC)是使用MVC构建Cocoa或者CocoaTouch程序时最重要的一个类,我们的日常工作中一般来说最花费时间和精力的也是在为VC部分编写代码.苹果产品是注重用户体验的,而对细节进行琢磨也是苹果对于开发者一直以来的要求和希望.在用户体验中,VC之间的关系,比如不同VC之间迁移和转换动画效果一直是一个值得不断推敲的重点.在iOS7中,苹

ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题

ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题 如图红色为scrollview的背景色,在scrollview上加了图片之后,总会有向下的偏移 设置contentOffset也不管用 在ios7中controller有个 automaticallyAdjustsScrollViewInsets属性,默认为YES if (iOS7&&[self respondsToSelector:@selector(automaticallyAdjustsScrollVie

iOS7中的状态栏

?从iOS7开始,系统提供了2种管理状态栏的方式 ?通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏) ?通过UIApplication管理(一个应用程序的状态栏都由它统一管理) ?在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式 ?状态栏的样式 - (UIStatusBarStyle)preferredStatusBarStyle

iOS7中的多任务 - Background Fetch,Silent Remote Notifications,?Background Transfer Service

转自:http://onevcat.com/2013/08/ios7-background-multitask/ 在IOS 7 出来不就,公司内部也组织了一次关于IOS 7 特性的的分享,今天看见onevcat 的blog,感叹它很有耐性和细心,写的这么详细,那就毫无保留原封不动的(其实也没有什么好改写的,实在是perfect )的分享给大家,希望对大家有所帮助. WWDC 2013 Session笔记 - iOS7中的多任务 iOS7的后台多任务特性 这是我的WWDC2013系列笔记中的一篇,

iOS7中的多任务II

[推送唤醒(Remote Notifications)] 在iOS6和之前,推送的类型是很单一的,无非就是显示标题内容,指定声音等.用户通过解锁进入你的应用后,appDelegate中通过推送打开应用的回调将被调用,然后你再获取数据,进行显示.这和没有后台获取时的打开应用后再获取数据刷新的问题是一样的. 在iOS7中这个行为发生了一些改变,我们有机会使设备在接收到远端推送后让系统唤醒设备和我们的后台应用,并先执行一段代码来准备数据和UI,然后再提示用户有推送.这时用户如果解锁设备进入应用后将不会

iOS7中的多任务I

[改变了后台任务的运行方式] 在iOS6和之前的系统中,系统在用户退出应用后,如果应用正在执行后台任务的话,系统会保持活跃状态直到后台任务完成或者是超时以后,才会进入真正的低功耗休眠状态. 而在iOS7中,后台任务的处理方式发生了改变.系统将在用户锁屏后尽快让设备进入休眠状态,以节省电力,这时后台任务是被暂停的.之后在设备在特定时间进行系统应用的操作被唤醒(比如检查邮件或者接到来电等)时,之前暂停的后台任务将一起进行.就是说,系统不会专门为第三方的应用保持设备处于活动状态.如下图示: 这个变化在