iOS双击Home键进入switcher任务管理切屏退出进入闪屏的解决办法

前几天偶然发现了一个bug是,打开程序后双击home键,进入任务管理器时,程序会闪动一下,本来以为是接收了在applicationWillResignActive中注册的通知,执行了页面刷新,但是打断点发现没有走到的时候就已经有闪屏现象了。
后来查了一下发现很多人跳转其他app也有类似的问题,最终知道是因为隐藏返回按钮的文字引起。

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) 
                              forBarMetrics:UIBarMetricsDefault];

UIOffsetMake(NSIntegerMin, NSIntegerMin) 表示将文字向负无穷方向偏移。
解决方案有三。如下:

  1. 将文字颜色设置为透明
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} 
                              forState:UIControlStateNormal];
  1. 将文字设置为空
  - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
      viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleDone target:nil action:nil];
      [super pushViewController:viewController animated:animated];
}

但是实际上,设置偏移量并不会引起闪屏,将偏移量改小就可以避免这个问题,但是至于为什么无穷值会导致闪屏,原因还未知。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //设置尺寸为屏幕尺寸的时候self.window = [[UIWindow alloc] initWithFra...
    LuckTime阅读 838评论 0 0
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 2,485评论 2 50
  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,553评论 1 14
  • Softly sighs the rainbow. Misty songs of all. Flowing by ...
    岛歌在跑阅读 565评论 0 2
  • 旅途 又在路上 一路向南方駛去 火車上播起了陳綺貞 刺蝟小姐原是不愛聽陳綺貞的 這種文藝小清新不適合她的人設 可現...
    生於夏日的刺蝟小姐阅读 85评论 0 0