NavigationBar的影响和边缘手势,和视频播放时不得自动全屏播放,设置状态条的样式

 /*
    edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。
    因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。
    self.edgesForExtendedLayout = UIRectEdgeNone;
    
    来解决UINavigationBar透明的问题。设置了UIRectEdgeNone之后,你嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar了,同时UIView的控件也回复到了iOS6时代。
    
    不过这个对于Status Bar在iOS7上面的变化是无效的,正确的说应该是部分无效。在存在Navigation部分或者Tabbar部分的时候,上面的代码可以使得Status Bar也不载透明(有待验证,毕竟UIViewController的可用空间被控制了),但是在没有这两个部分的时候,Status Bar依旧是会记入UIView范围的。
     */
    self.edgesForExtendedLayout = UIRectEdgeRight;
    self.navigationBar.tintColor = [UIColor lightGrayColor];
    // 当自定义返回按钮时保证边缘手势正常
    self.interactivePopGestureRecognizer.delegate = self;
}

//不允许当前NavigationBar下得自动视图横屏,主要针对视频播放
- (BOOL)shouldAutorotate
{
    return NO;
}

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章