iOS系统tabbar图标出现重影问题
大家在自定义tabbar的时候会将系统的tabbar干掉,然后放上自已自定义的tabbar(含有想要的Button)对不对,具体代码如下:
/**
* 添加自定义的tabBar
*/
-(void)addTabBarView
{
MSTabBar * tabbar = [[MSTabBar alloc]init]; tabbar.backgroundColor = [UIColor whiteColor]; tabbar.frame = self.tabBar.bounds; tabbar.delegate = self; tabbar.tabBarItems = self.tabBarItems; [self.tabBar addSubview:tabbar]; } /**
* 在主要控制器出来时将系统的tabbar移除掉只剩下自已的
*/
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated]; //将tabbar里面的东西除了自定义的tabbar不删除,其他都删除
//留下一个自定义的.想隐藏就能隐藏掉,只要设置tabbar的一个隐藏属性就好,
for (UIView * view in self.tabBar.subviews)
{ if (![view isKindOfClass:[MSTabBar class]]) { [view removeFromSuperview];
}
} }
然后完美使用自已自定义的,就可以随心所欲在view上做事情,或者做一些想要的动画
但是
最近项目出现tabbar重影问题,我明明将系统的tabbar干掉了,但是还是感觉会出来,在我使用以下代码进行页面间的跳转的时候,重影问题出现了.
重影图片居然长那么丑,就是系统的蓝色加上自已的色彩,完全懵逼了有木有!!!
我设置的颜色是00d4d3 而重叠上系统的蓝色
拿层级工具查看
有没有觉得跟蛋疼,,,疼疼疼....
这让我很尴尬啊,为什么去掉了系统的tabbar又出现了
细心点会发现只是进行跨级跳跃的时候会出现该bug,只是我是这样出现的,不知道还有其他同学会怎么奇葩地出现改bug
严肃来说如果只是单个跳转并没有出现重影,而进行跨级跳跃的时候会出现tabbar图标重影问题.
以下代码为跨级跳转
//发通知
for (UIViewController *controller in self.navigationController.viewControllers) { if ([controller isKindOfClass:[MSDetailWebController class]]) { [self.navigationController popToViewController:controller animated:NO]; } }
在百度寻找了一堆答案,试了无限次遍,终于在一个方法里面实现几行代码就解决了,重影问题没有再出现过
请同学们仔细观察以下~~!!!--------跨级跳转的时候会发现什么~!!
具体原理不贴了,毕竟我们是解决问题的嘛~~(其实我也不知道发现啥,反正系统的tabbar会再出现一次)
解决办法:
-(void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews]; for (UIView * view in self.tabBar.subviews)
{ if (![view isKindOfClass:[MSTabBar class]]) { [view removeFromSuperview];
}
}
}
在主要的视图layoutSubView中再删除一次,以防出现的时候不能删除,在viewWillAppear中删除只是保证删除一次
所以要进行多次删除
有同学会发现这样删除会不会把本来不存在的删除会出现空指针访问错误
这样是不会出现这种问题的,因为是遍历他的子控件,发现有才删除,所以并不会删除不存在的东西
这样就完美解决了问题,不会再重影问题,尽管你再怎么跳~~~来呀跳啊啊啊~~
iOS系统tabbar图标出现重影问题的更多相关文章
- 社交网络编程API之iOS系统自带分享
社交网络编程API 社交网络编程主要使用iOS提供的Social框架,目前Social框架主要包含两个类: SLComposeViewController 提供撰写社交信息(如微博信息)的视图控制器, ...
- iOS系统中导航栏的转场解决方案与最佳实践
背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...
- Vue微信自定义分享时安卓系统config:ok,ios系统config:invalid signature签名错误,或者安卓和ios二次分享时均config:ok但是分享无效的解决办法
简述需求:要求指定页面可以进行微信自定义分享(自定义标题,描述,图片,链接),剩下的页面隐藏所有基础接口.二次分享依然可以正常使用,切换至其他页面也可以正常进行自定义分享. 这两天在做微信自定义分享的 ...
- IOS和Android图标尺寸
刚开始接触UI的时候,碰到的最多的就是尺寸问题,今天我们就来谈谈IOS和Android 图标设计尺寸吧! 一.IOS篇 1.iOS app图标的圆角半径是多少? (注:现在IOS图标是不需要再画圆角了 ...
- 有关iOS系统中调用相机设备实现二维码扫描功能的注意点(3/3)
今天我们接着聊聊iOS系统实现二维码扫描的其他注意点. 大家还记得前面我们用到的输出数据的类对象吗?AVCaptureMetadataOutput,就是它!如果我们需要实现目前主流APP扫描二维码的功 ...
- 设置 iOS 应用的图标和名称
Xcode 8.1 设置 iOS 应用的图标和名称的方法: 设置应用图标: 1.在 Resources 中添加图片: 2.在 Icon file 的属性值填写图标文件的名称. 设置应用名: 1.修改 ...
- iOS 7 tabbar 透明的问题
在某种特定情景中,ios的tabbar会出现完全透明的情况,出现这种情况的原因是ios7 默认的view因为IOS7默认是全延伸,也就是说controller是延伸到tabbar下面,并且在windo ...
- 基于H5的移动端开发,window.location.href在IOS系统无法触发问题
最近负责公司的微信公众号开发项目,基于H5进行开发,某些页面window.location.href在Android机上能正常运行而IOS系统上无法运行,导致无法重定向到指定页面,查了好久终于找到方法 ...
- iOS 系统架构
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/ ...
随机推荐
- java对国际化的支持
国际化的英文为Internationalization,这个也太长了,所以它又称为I18n(英文单词 internationalization的首末字符i和n,18为中间的字符数). 除了i18n还有 ...
- java中的成员变量和局部变量区别
1.作用域不同 成员变量的作用域在整个类内部都是可见,可用的: 局部变量的作用域仅限于定义它的方法,不能被其它方法调用: 2.初始值不同 java会给成员变量一个初始值,初始值为0: java不会给局 ...
- PE文件学习系列二 DOS头分析
合肥程序员群:49313181. 合肥实名程序员群 :128131462 (不愿透露姓名和信息者勿加入)Q Q:408365330 E-Mail:egojit@qq.com PE文件结 ...
- c#数据绑定(2)——删除DataTable的数据
文/嶽永鹏 c#数据绑定(1)中,简要的通过代码应用了DataTable,DataTableColumns,DataTableRow类,通过UI界面的Textbox向DataTable中添加数据然后响 ...
- php 使用curl模拟登录discuz以及模拟发帖
<?php$discuz_url = 'http://127.0.0.1/discuz/';//论坛地址$login_url = $discuz_url .'logging.php?action ...
- autoloader
自动加载 $loader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Blog', 'base ...
- Ubuntu搭建svn服务器
一,安装必须的软件包. sudo apt-getinstall subversion 二,基本的SVN服务器配置 1,新建一个目录用于存储SVN所有文件 # ...
- 用超链接提交表单,实现在动态网页的url中隐藏参数
动态网页中怎么隐藏url参数传递 我们在做动态网站的时候往往会在各个页面之间传递参数,而这些参数的名称和值都会在url地址栏中被暴露出来,这样一方面不安全,另一方面也不便于搜索引擎的收录,有的时候还有 ...
- python 学习2
在1的基础上 settings.py blog/models.py: 打开一个cmd, net start mysql ,启动mysql服务 mysql -uroot -p 再在py_fir目录下打开 ...
- H5瀑布流如何实现
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...