实现导航栏的渐变透明和tableView的tableViewheader图片逐渐变大

一 、导航栏的渐变原理

1.首先我们先把导航栏弄透明了

      那么我们首先得知道,设置navigationBar的BackgroundColor为Clear是没用的,你可以试着设置它的clear,但是没用,原因一会儿我们就知道了。

      设置导航栏透明的方法是这样的:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]

forBarMetrics:UIBarMetricsDefault];

self.navigationController.navigationBar.shadowImage = [UIImage new];

      你可以运行这两句话到你的程序,你会发现这样确实是可以的,那么我们可以从中得到几个信息:

    1)我们设置的是BackgroundImage,说明也许在我们的navigationBar上有一个ImageView的子视图,而我们的看到的导航栏实际上看到的就是这个图片,因此设置它为无图片我们就可以看到透明,而设置backgroundColor却不行。

    2)我们还设置了shadowImage为无图,它其实就是导航栏下面的那根细线,如果你不写第二句话你则会看到一根线。

我们来看一下navigationBar的结构图

按照上面的方法来看应该是继承于我们所看到的应该是UIImageView但是在里面却看到的是以View命名,这个地方暂时没搞定,我直接试了一下用ImageView和View都没有错误,毕竟imageView也是View的子类,我们所设置的就是他的透明度

二、关于图片放大的方法,参照代码

     下面直接上代码吧github.com/shuaikun/NavigationBarGradientDemo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容