ios-开发技巧

从iOS7开始,view controllers默认使用的是全屏幕布局,介绍几个属性,edgesForExtendedLayout

这个属性用于设置view的某个边能够覆盖整个屏幕。比如说你push了一个UIViewController到一个UINavigationController,这个UIViewController里面view的布局是从导航栏底部开始的,通过这个属性,你将能够设置view的哪一边(顶部、左边、右边、底部)能够延伸到整个屏幕。如果我们没有设置edgesForExtendedLayout,默认全局显示,就是连导航栏后面的背景我们也显示了。如果我们将view的背景色设置为红色,则导航栏后面也能隐约的看到红色如果我们将值设为UIRectEdgeNone,这样view controller就不会将view延伸至整个屏幕。

self.edgesForExtendedLayout = UIRectEdgeNone;

//嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar了。

从iOS7开始,苹果对navigationBar进行了模糊处理,并把self.navigationController.navigationBar.translucent = YES 作为默认处理。
这会出现一个问题,当你push的控制器以ScrollView或TableView为主view时,模糊处理会使状态栏和NavigationBar挡住后面的视图,所以苹果会自动把主View的内容向下移动64px,同理,底部Tabbar会使主View向上偏移49px,Toolbar会是主View向上偏移44px 
当你不想让主View自动发生偏移时:

 self.automaticallyAdjustsScrollViewInsets = NO;//    自动滚动调整,默认为YES

当你不想要navigationBar进行模糊处理时:

self.navigationController.navigationBar.translucent = NO;//    Bar的模糊效果,默认为YES
每个状态了都是给每个控制器来管理的,所以如果我们想改变状态栏的颜色,或者隐藏状态栏只需添加下面的代码
//改变状态栏的颜色
-(UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}
//隐藏状态栏
-(BOOL)prefersStatusBarHidden
{
    return YES;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值