我现在正在玩iOS7
,发现我的视图界限变为全屏
例如。在320*460
现在320*480
之前20px
状态栏超出我的视野,
我知道iOS7
开始支持全屏布局,并且有一个
self.edgesForExtendedLayout = UIRectEdgeNone;
设置,但此行似乎仅在显示导航栏时有效。
我无法上传截图。在iOS6
视图中看似正常,320*460
,
在iOS7
320*480
中,状态栏包含视图内容。
如果我使用导航栏并设置self.edgesForExtendedLayout = UIRectEdgeNone;
视图框架变为320*416
,状态栏显示20
,导航栏显示44
,但我的应用是自定义顶部栏,此处未使用导航栏。
如果我更改窗口框架,它会向下移动20 px
,但状态栏似乎被剪切并显示黑色320*20
条,
任何让iOS6
和iOS7
都满意的方法吗?
答案 0 :(得分:1)
根据我的观察,您需要更改tableview的内容插入,因为您拥有与状态栏重叠的自定义顶部栏。请参阅以下代码
NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ( [[vComp objectAtIndex:0] intValue] >= 7)//do this only for ios7+ {
[self.tableview setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)];
}
其中tableview指的是超出状态栏的tableview。我已将顶部位置硬编码为64(状态栏高度(20)+导航栏高度(44))。请根据您的设计更新。
setContentInset
无法使用视图。对于视图,您需要更新帧原点y位置,如下所示
if ( [[vComp objectAtIndex:0] intValue] >= 7)//do this only for ios7+ {
CGRect viewFrame = self.view.frame;
viewFrame.origin.y = 64;//change this according to ur top bar height.
self.view.frame = viewFrame;
}