iOS 7中的ViewView在ViewController和NavigationBar中模糊效果

前端之家收集整理的这篇文章主要介绍了iOS 7中的ViewView在ViewController和NavigationBar中模糊效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在应用程序中使用TableViewController在故事板中构建了TableView.当您这样做时,当您向下滚动您的列表时,您会有非常酷的效果:移动导航栏后面的单元格变得模糊.

一段时间后,我不得不从TableViewController移动到具有TableView的ViewController(我必须在表的底部添加其他视图).

为了避免导航栏隐藏第一个单元格(在其上),我添加了顶部和底部布局指南以及视图左右边缘的约束.

这样做很好,但是我失去了很酷的模糊滚动效果:细胞似乎正在消失,然后在导航栏后面.

我已经看到解决方法与人没有使用约束和魔术数字在界面构建器.我不能这样做,首先是因为我不喜欢,第二是因为我必须要iOS 6兼容.

我错过了什么能够从模糊的导航栏效果再次受益?

解决方法

您必须手动调整表视图的contentInset,并确保表视图帧原点为0,0.
以这种方式,表格视图将在导航栏的下方,但内容和滚动视图边缘之间会有一些余量(内容被向下移动).

我建议您使用view controller的topLayoutGuide属性来设置正确的contentInsets,而不是硬编码64(状态栏导航栏).
还有bottomLayoutGuide,在UITapBars的情况下你应该使用它.

这里是一些示例代码(viewDidLoad应该是罚款):

// Set edge insets
CGFloat topLayoutGuide = self.topLayoutGuide.length;
tableView.contentInset = UIEdgeInsetsMake(topLayoutGuide,0);

顺便说一下,UIViewController的这个属性可能会帮助你(你不需要改变它们的默认值,但是我不知道你的视图层次结构是什么):

> automaticallyAdjustsScrollViewInsets> edgesForExtendedLayout> extendedLayoutIncludesOpaqueBars

猜你在找的iOS相关文章