美文网首页
好久不见-IOS

好久不见-IOS

作者: 人人为它 | 来源:发表于2019-11-12 17:40 被阅读0次

公司混不下去。。没开让我转别的。。社畜很感激。

干到一半。老项目又要改,searchDisplayController ios13闪退。

嗯。瞄一眼。苹果估计是不乐意写兼容代码或者想减少下自己的体积。。所以么。。直接报错。

那么就改喽,改成UISearchController.记录下遇到的坑点。免得以后再遇到不知所措,被水淹没。

1.searchBar的问题。

searchDisplayController是传入searchBar的。。UISearchController是提供searchBar的。。2者不可兼得。。对于项目里自定义searchBar多的比较麻烦,而且我们的项目headerView都是自定义的。searchBar在headerView里。。

解决方法么。。继承UISearchController。自己写一个。然后重写searchBar方法。把自定义searchBar的实例返回回去。。

-(UISearchBar *)searchBar{

    return self.customSearchBar;

}

-(UISearchBar *)customSearchBar{

    if (_customSearchBar) {

        return _customSearchBar;

    }else{

        if(customCls) {

            _customSearchBar=[customCls new];

        }

        if (!_customSearchBar) {

            _customSearchBar=[UISearchBarnew];

        }

        return _customSearchBar;

    }

}

类似于这样。。

要是每个页面还有不一样的。只能去外面自定义了。。然后包含自定义searchBar的只能被动接受传入的searchBar了(怪以前偷懒,searchBar直接在自定义view里new的。。)。

第二坑。激活的时候seachBar位置各种不对。。鬼知道苹果怎么算得。反正就是激活的时候你的searchBar会从原始图中被苹果移动到searchController里。因为好像就是present出来的。。然后去掉了再帮你移动回去。

所以我暂时就只有硬编码解决了

-(void)viewDidLayoutSubviews{

    [super viewDidLayoutSubviews];

    //修改searchbar偏移问题

    //奇葩的偏移修复。硬编码

    if(self.view.subviews.count==2&&self.isActive) {

        UIView*container=nil;

        UIView*another=nil;

        for(UIView*subViewinself.view.subviews) {

            if ([NSStringFromClass(subView.class) containsString:@"SearchBar"]) {

                container=subView;

            }else{

                another=subView;

            }

        }

        if(container.top!=CGRectGetMaxY([UIApplicationsharedApplication].statusBarFrame)) {

            container.top=CGRectGetMaxY([UIApplicationsharedApplication].statusBarFrame);

            self.searchBar.top=container.top;

            another.top=container.bottom;

            another.height=self.view.height-another.top;

        }

    }

}

这代码到ios13.2都是好的。

3.黑屏。

因为我们是tab+navi+vc。这样的UI架构。然后search激活的时候要求不隐藏底部tabbar。就有被点击移动到别的tab的可能性。

然后发现点过去,,回来。。背景黑了。vc也没释放啊。。好了又是present的坑。设置跳转控制器为包含searchBar的VC就行。

        vc.definesPresentationContext=YES;

哎。。ios行情真的不好啊。

相关文章

  • 好久不见-IOS

    公司混不下去。。没开让我转别的。。社畜很感激。 干到一半。老项目又要改,searchDisplayControll...

  • 好久不见(六)

    好久不见(一) 好久不见(二) 好久不见(三) 好久不见(四) 好久不见(...

  • CI Weekly #22 | flow.ci 新版 iOS 构

    好久不见,最近我们针对 iOS 项目重新设计了创建项目的流程,较之前相比有 4 个变化: 在创建项目阶段加入项目有...

  • Hacking Swift - 图片查看器

    各位好,好久不见,我又回来了。这篇文章是ios 开发 系列文章(hacking swift )的第一篇首先我不会翻...

  • 反正我跳了

    好久不见~ 简书的老伙伴们都知道,我除了写写 ios app、偶尔做做设计、去书店站站岗、在家健健身看看书写写字,...

  • 四年未见,我们都变了,但四年前的感觉还在

    好久不见,好久不见年!好久不见? 四年未见。

  • 好久不见

    好久不见 zydy 好久不见,你好吗?好久不见,你的心情是否...

  • 浦东之行

    上海好久不见,浦东好久不见……

  • 好久不见

    楼道间的女孩 好久不见 好久不见你柔软中带酥的声音 好久不见你暖阳般的微笑 好久不见你写上你名字的单眼皮 好久不见...

  • 好久不见

    “嗨,好久不见,差点没认出来你。” “嗨,好久不见,过得还好吗。” “嗨,好久不见,原来是你啊。” “嗨,好久不见...

网友评论

      本文标题:好久不见-IOS

      本文链接:https://www.haomeiwen.com/subject/vlmqictx.html